{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 查看FashionMNIST原始数据格式"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-26T01:43:32.363026Z",
     "start_time": "2025-06-26T01:43:29.447990Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(<PIL.Image.Image image mode=L size=28x28 at 0x1B345A79AC0>, 9)\n"
     ]
    },
    {
     "data": {
      "image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCAAcABwBAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/APn+tbw1oNx4m8QWmkWx2yXD4LkZCADJJ+gFbviL4a63oc7COE3MW4hdn38duD976jNc9daDqllIsc9lKrMu4YGeMkdR7gj8KzcV7H8BtEvV16+1iWCeG1Wz8mOV02pIzupwCeuAp6Z98cZ90aIzLIlw0c0ZJ4KgjHoeOa+evjS9n/wnMcNxBPCYLKONFhA2FNzMpGenDcgd816V4K03wefC+m3NlpVhP+5QSXBiR5fMx825iMg5zwce3FdbOzTwgW90lu6uCm8eYrL02soIyCPQgggEdMGQ3cluiPNK0rJwrRQBNueuMkt+teNfGKxsdY8WWdxNqcNo66eieXMwVsb5DnH415Hp2rajpE5n02/urOUjBe3laMkehIPIrVm8eeLrhNknibVivoLtx/I1UPinxC3XXtUP1vJP8ay5JZJpGkldnduSzHJP41//2Q==",
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAAAAABXZoBIAAACS0lEQVR4AWKgA2BkYOD1ZGBgZAHZxcjIAKZBbBBm+quS8v3rj1N/GBiZGP8wMKNIMv91cnnCzuU65+X/vww8/76hSP5iMFVgZtpp2HXm8nUz02PHGUHGQTHjf9cugd//GE7f+cUo8ft0yDSEJCMDw/8TCgyMf34x/Ph3/vYfT0VphLH/GRgY3kt+Z2fl+cH5z8aSSWwHqmsZuJiZvn18p/CPkYnr7z9ZBiaofQwMjMwMPFI/frH++sr/j537K9sldhOE5H9mhnBJJg4Gbtlf7L//cQhvusaCkGT5xXDlBxsXl6rSD2Yunr9PoraeYAGZx8T4+x/DHwaGbV+/s/1/zczxm+H3P2a9jwxMDMz///z6+Y+BwW7ime9v//z78/XrXw6GbwxsX4NAYc3AICSlJhmk/oPpN+czVjbhX1zHeOz+fWR9qcnIYNkkKvCX+cMfrl+M36+HneEVVGC4x/v5GycPHxcj83GpP3+/MTB/Z2DgF0lwy3z24/49VeFfrLxsf+UBY0xqv8vDw87Ayv/4mSiTRACHIrexMdMvJjYGRlYLlpeP+X485mHje/eQ5/uPP+svKwj9+vD77y/Wf4xsaixP/z/mFvnw5jULOysHL9Mbza+P37O/+f3nN6fERwOWC+sTn937wcPGwcb88+//by/+/WX5wfPrw4fffxRfMjIweBWLv/7wl5mNhZnxPysrGysjA+NLBrZ/EpfCGJn+MTA4tYnxMzGz/GV8+f/pvy/MDP9/f2Paff0YJBAYGBg0RN/LPPx1Fx5HFDIAaCTYdiCc4RIAAAAASUVORK5CYII=",
      "text/plain": [
       "<PIL.Image.Image image mode=L size=28x28>"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import torch\n",
    "import torchvision\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from torchvision import datasets, transforms\n",
    "from deeplearning_func import EarlyStopping, ModelSaver,train_classification_model,plot_learning_curves\n",
    "from deeplearning_func import evaluate_classification_model as evaluate_model\n",
    "# 加载Fashion MNIST数据集，张量就是和numpy数组一样\n",
    "transform = transforms.Compose([])\n",
    "train_dataset = datasets.FashionMNIST(root='./data', train=True, download=True, transform=transform)\n",
    "test_dataset = datasets.FashionMNIST(root='./data', train=False, download=True, transform=transform)\n",
    "print(train_dataset[0])\n",
    "train_dataset[0][0]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 加载数据并处理为tensor"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-26T01:43:32.407799Z",
     "start_time": "2025-06-26T01:43:32.363026Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练集形状: (60000, 28, 28)\n",
      "训练集标签数量: 60000\n",
      "测试集形状: (10000, 28, 28)\n",
      "测试集标签数量: 10000\n"
     ]
    }
   ],
   "source": [
    "# 加载Fashion MNIST数据集，张量就是和numpy数组一样\n",
    "transform = transforms.Compose([\n",
    "    transforms.ToTensor(),\n",
    "    transforms.Normalize((0.286,), (0.353,))  \n",
    "])\n",
    "train_dataset = datasets.FashionMNIST(root='./data', train=True, download=True, transform=transform)\n",
    "test_dataset = datasets.FashionMNIST(root='./data', train=False, download=True, transform=transform)\n",
    "\n",
    "# 获取图像和标签\n",
    "# 注意：由于使用了transform，图像已经被转换为张量且标准化\n",
    "# 我们需要从dataset中提取原始图像用于显示\n",
    "train_images = train_dataset.data.numpy()\n",
    "train_labels = train_dataset.targets.numpy()\n",
    "test_images = test_dataset.data.numpy()\n",
    "test_labels = test_dataset.targets.numpy()\n",
    "\n",
    "# 定义类别名称\n",
    "class_names = ['T-shirt/top', '裤子', '套头衫', '连衣裙', '外套',\n",
    "               '凉鞋', '衬衫', '运动鞋', '包', '短靴']\n",
    "\n",
    "# 查看数据集基本信息\n",
    "print(f\"训练集形状: {train_images.shape}\")\n",
    "print(f\"训练集标签数量: {len(train_labels)}\")\n",
    "print(f\"测试集形状: {test_images.shape}\")\n",
    "print(f\"测试集标签数量: {len(test_labels)}\")\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 把数据集划分为训练集55000和验证集5000，并给DataLoader"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-26T01:43:33.144223Z",
     "start_time": "2025-06-26T01:43:33.135368Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练集大小: 55000\n",
      "验证集大小: 5000\n",
      "测试集大小: 10000\n",
      "批次大小: 64\n",
      "训练批次数: 860\n"
     ]
    }
   ],
   "source": [
    "# 从训练集中划分出验证集\n",
    "train_size = 55000\n",
    "val_size = 5000\n",
    "# 设置随机种子以确保每次得到相同的随机划分结果\n",
    "generator = torch.Generator().manual_seed(42)\n",
    "train_subset, val_subset = torch.utils.data.random_split(\n",
    "    train_dataset, \n",
    "    [train_size, val_size],\n",
    "    generator=generator #设置随机种子，确保每次得到相同的随机划分结果\n",
    ")\n",
    "\n",
    "# 创建数据加载器\n",
    "batch_size = 64\n",
    "train_loader = torch.utils.data.DataLoader(\n",
    "    train_subset,\n",
    "    batch_size=batch_size,\n",
    "    shuffle=True #打乱数据集，每次迭代时，数据集的顺序都会被打乱\n",
    ")\n",
    "\n",
    "val_loader = torch.utils.data.DataLoader(\n",
    "    val_subset,\n",
    "    batch_size=batch_size,\n",
    "    shuffle=False\n",
    ")\n",
    "\n",
    "test_loader = torch.utils.data.DataLoader(\n",
    "    test_dataset,\n",
    "    batch_size=batch_size,\n",
    "    shuffle=False\n",
    ")\n",
    "\n",
    "# 打印数据集大小信息\n",
    "print(f\"训练集大小: {len(train_subset)}\")\n",
    "print(f\"验证集大小: {len(val_subset)}\")\n",
    "print(f\"测试集大小: {len(test_dataset)}\")\n",
    "print(f\"批次大小: {batch_size}\")\n",
    "print(f\"训练批次数: {len(train_loader)}\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-26T01:43:33.148120Z",
     "start_time": "2025-06-26T01:43:33.145230Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "55040"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "64*860"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 搭建模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([20, 100])\n"
     ]
    }
   ],
   "source": [
    "#理解每个接口的方法，单独写例子\n",
    "import torch.nn as nn\n",
    "m=nn.BatchNorm1d(100)\n",
    "x=torch.randn(20,100)\n",
    "print(m(x).shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "输入形状: torch.Size([1, 3, 28, 28])\n",
      "输出形状: torch.Size([1, 16, 28, 28])\n",
      "参数数量: 94\n"
     ]
    }
   ],
   "source": [
    "# 实现深度可分离卷积层\n",
    "class DepthwiseSeparableConv(nn.Module):\n",
    "    def __init__(self, in_channels, out_channels, kernel_size, stride=1, padding=0):\n",
    "        super().__init__()\n",
    "        # 深度卷积 - 每个输入通道使用单独的卷积核\n",
    "        self.depthwise = nn.Conv2d(\n",
    "            in_channels=in_channels,\n",
    "            out_channels=in_channels,\n",
    "            kernel_size=kernel_size,\n",
    "            stride=stride,\n",
    "            padding=padding,\n",
    "            groups=in_channels  # 将输入通道分组，每组一个通道\n",
    "        )\n",
    "        # 逐点卷积 - 使用1x1卷积进行通道混合\n",
    "        self.pointwise = nn.Conv2d(\n",
    "            in_channels=in_channels,\n",
    "            out_channels=out_channels,\n",
    "            kernel_size=1,\n",
    "            stride=1,\n",
    "            padding=0\n",
    "        )\n",
    "    \n",
    "    def forward(self, x):\n",
    "        x = self.depthwise(x)\n",
    "        x = self.pointwise(x)\n",
    "        return x\n",
    "\n",
    "# 测试深度可分离卷积层\n",
    "input_tensor = torch.randn(1, 3, 28, 28)  # 批次大小为1，3个输入通道，28x28图像\n",
    "separable_conv = DepthwiseSeparableConv(in_channels=3, out_channels=16, kernel_size=3, padding=1)\n",
    "output = separable_conv(input_tensor)\n",
    "print(f\"输入形状: {input_tensor.shape}\")\n",
    "print(f\"输出形状: {output.shape}\")\n",
    "print(f\"参数数量: {sum(p.numel() for p in separable_conv.parameters())}\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-26T01:43:33.152657Z",
     "start_time": "2025-06-26T01:43:33.148120Z"
    }
   },
   "outputs": [],
   "source": [
    "import torch.nn as nn\n",
    "import torch.nn.functional as F\n",
    "\n",
    "class NeuralNetwork(nn.Module):\n",
    "    def __init__(self, activation='relu'):\n",
    "        super().__init__()\n",
    "        \n",
    "        # 设置激活函数\n",
    "        if activation == 'relu':\n",
    "            self.activation = F.relu\n",
    "        elif activation == 'selu':\n",
    "            self.activation = F.selu\n",
    "        else:\n",
    "            raise ValueError(f\"不支持的激活函数: {activation}\")\n",
    "        \n",
    "        # 第一组卷积层 - 32个卷积核\n",
    "        self.conv1 = nn.Conv2d(1, 32, kernel_size=3, padding=1) # 输入通道数，输出通道数代表的是卷积核的个数\n",
    "        self.conv2 = DepthwiseSeparableConv(32, 32, kernel_size=3, padding=1)\n",
    "        self.pool = nn.MaxPool2d(kernel_size=2, stride=2)\n",
    "        \n",
    "        # 第二组卷积层 - 64个卷积核\n",
    "        self.conv3 = DepthwiseSeparableConv(32, 64, kernel_size=3, padding=1)\n",
    "        self.conv4 = DepthwiseSeparableConv(64, 64, kernel_size=3, padding=1)\n",
    "\n",
    "        \n",
    "        # 第三组卷积层 - 128个卷积核\n",
    "        self.conv5 = DepthwiseSeparableConv(64, 128, kernel_size=3, padding=1)\n",
    "        self.conv6 = DepthwiseSeparableConv(128, 128, kernel_size=3, padding=1)\n",
    "\n",
    "        \n",
    "        # 计算全连接层的输入特征数\n",
    "        # 经过3次池化，图像尺寸从28x28变为3x3x128\n",
    "        self.fc1 = nn.Linear(128 * 3 * 3, 256)\n",
    "        self.fc2 = nn.Linear(256, 10)\n",
    "        \n",
    "        # 初始化权重\n",
    "        self.init_weights()\n",
    "        \n",
    "    def init_weights(self):\n",
    "        \"\"\"使用 xavier 均匀分布来初始化卷积层和全连接层的权重\"\"\"\n",
    "        for m in self.modules():\n",
    "            if isinstance(m, nn.Conv2d) or isinstance(m, nn.Linear):\n",
    "                nn.init.xavier_uniform_(m.weight)\n",
    "                if m.bias is not None:\n",
    "                    nn.init.zeros_(m.bias)\n",
    "    \n",
    "    def forward(self, x):\n",
    "        # x.shape [batch size, 1, 28, 28]\n",
    "        \n",
    "        # 第一组卷积层\n",
    "        x = self.activation(self.conv1(x))\n",
    "        # print(f\"conv1后的形状: {x.shape}\")\n",
    "        x = self.activation(self.conv2(x))\n",
    "        # print(f\"conv2后的形状: {x.shape}\")\n",
    "        x = self.pool(x)\n",
    "        # print(f\"pool1后的形状: {x.shape}\")\n",
    "        \n",
    "        # 第二组卷积层\n",
    "        x = self.activation(self.conv3(x))\n",
    "        # print(f\"conv3后的形状: {x.shape}\")\n",
    "        x = self.activation(self.conv4(x))\n",
    "        # print(f\"conv4后的形状: {x.shape}\")\n",
    "        x = self.pool(x)\n",
    "        # print(f\"pool2后的形状: {x.shape}\")\n",
    "        \n",
    "        # 第三组卷积层\n",
    "        x = self.activation(self.conv5(x))\n",
    "        # print(f\"conv5后的形状: {x.shape}\")\n",
    "        x = self.activation(self.conv6(x))\n",
    "        # print(f\"conv6后的形状: {x.shape}\")\n",
    "        x = self.pool(x)\n",
    "        # print(f\"pool3后的形状: {x.shape}\")\n",
    "        \n",
    "        # 展平\n",
    "        x = x.view(x.size(0), -1)\n",
    "        # print(f\"展平后的形状: {x.shape}\")\n",
    "        \n",
    "        # 全连接层\n",
    "        x = self.activation(self.fc1(x))\n",
    "        # print(f\"fc1后的形状: {x.shape}\")\n",
    "        x = self.fc2(x)\n",
    "        # print(f\"fc2后的形状: {x.shape}\")\n",
    "        \n",
    "        return x\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-26T01:43:33.185031Z",
     "start_time": "2025-06-26T01:43:33.152657Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "批次图像形状: torch.Size([64, 1, 28, 28])\n",
      "批次标签形状: torch.Size([64])\n",
      "----------------------------------------------------------------------------------------------------\n",
      "torch.Size([64, 10])\n"
     ]
    }
   ],
   "source": [
    "# 实例化模型\n",
    "model = NeuralNetwork()\n",
    "\n",
    "# 从train_loader获取第一个批次的数据\n",
    "dataiter = iter(train_loader)\n",
    "images, labels = next(dataiter)\n",
    "\n",
    "# 查看批次数据的形状\n",
    "print(\"批次图像形状:\", images.shape)\n",
    "print(\"批次标签形状:\", labels.shape)\n",
    "\n",
    "\n",
    "print('-'*100)\n",
    "# 进行前向传播\n",
    "with torch.no_grad():  # 不需要计算梯度\n",
    "    outputs = model(images)\n",
    "    \n",
    "\n",
    "print(outputs.shape)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-26T01:43:33.203053Z",
     "start_time": "2025-06-26T01:43:33.199532Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "需要求梯度的参数总量: 333418\n",
      "模型总参数量: 333418\n",
      "\n",
      "各层参数量明细:\n",
      "conv1.weight: 288 参数\n",
      "conv1.bias: 32 参数\n",
      "conv2.depthwise.weight: 288 参数\n",
      "conv2.depthwise.bias: 32 参数\n",
      "conv2.pointwise.weight: 1024 参数\n",
      "conv2.pointwise.bias: 32 参数\n",
      "conv3.depthwise.weight: 288 参数\n",
      "conv3.depthwise.bias: 32 参数\n",
      "conv3.pointwise.weight: 2048 参数\n",
      "conv3.pointwise.bias: 64 参数\n",
      "conv4.depthwise.weight: 576 参数\n",
      "conv4.depthwise.bias: 64 参数\n",
      "conv4.pointwise.weight: 4096 参数\n",
      "conv4.pointwise.bias: 64 参数\n",
      "conv5.depthwise.weight: 576 参数\n",
      "conv5.depthwise.bias: 64 参数\n",
      "conv5.pointwise.weight: 8192 参数\n",
      "conv5.pointwise.bias: 128 参数\n",
      "conv6.depthwise.weight: 1152 参数\n",
      "conv6.depthwise.bias: 128 参数\n",
      "conv6.pointwise.weight: 16384 参数\n",
      "conv6.pointwise.bias: 128 参数\n",
      "fc1.weight: 294912 参数\n",
      "fc1.bias: 256 参数\n",
      "fc2.weight: 2560 参数\n",
      "fc2.bias: 10 参数\n"
     ]
    }
   ],
   "source": [
    "# 计算模型的总参数量\n",
    "# 统计需要求梯度的参数总量\n",
    "total_params = sum(p.numel() for p in model.parameters() if p.requires_grad)\n",
    "print(f\"需要求梯度的参数总量: {total_params}\")\n",
    "\n",
    "# 统计所有参数总量\n",
    "all_params = sum(p.numel() for p in model.parameters())\n",
    "print(f\"模型总参数量: {all_params}\")\n",
    "\n",
    "# 查看每层参数量明细\n",
    "print(\"\\n各层参数量明细:\")\n",
    "for name, param in model.named_parameters():\n",
    "    print(f\"{name}: {param.numel()} 参数\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "294912"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "128*3*3*256"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 各层参数量明细:\n",
    "conv1.weight: 288 参数 3*3*1*32\n",
    "conv1.bias: 32 参数\n",
    "conv2.weight: 9216 参数 3*3*32*32\n",
    "conv2.bias: 32 参数  \n",
    "conv3.weight: 18432 参数 3*3*32*64\n",
    "conv3.bias: 64 参数\n",
    "conv4.weight: 36864 参数  3*3*64*64\n",
    "conv4.bias: 64 参数\n",
    "conv5.weight: 73728 参数\n",
    "conv5.bias: 128 参数\n",
    "conv6.weight: 147456 参数\n",
    "conv6.bias: 128 参数\n",
    "fc1.weight: 294912 参数 128*3*3*256\n",
    "fc1.bias: 256 参数\n",
    "fc2.weight: 2560 参数\n",
    "fc2.bias: 10 参数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-26T01:43:33.217395Z",
     "start_time": "2025-06-26T01:43:33.203561Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "OrderedDict([('conv1.weight',\n",
       "              tensor([[[[ 3.8588e-02, -3.1435e-02,  1.4060e-01],\n",
       "                        [-9.3586e-02,  7.8154e-02,  1.3926e-01],\n",
       "                        [-4.0052e-02,  5.8395e-04,  8.0625e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-2.8241e-02,  6.5342e-02, -1.1996e-01],\n",
       "                        [-1.2368e-01,  6.3508e-02, -5.2364e-02],\n",
       "                        [-1.2680e-01, -6.8223e-02,  7.1607e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-1.0789e-01,  1.2529e-01, -1.3350e-01],\n",
       "                        [-8.9961e-03,  7.9732e-02, -1.0583e-01],\n",
       "                        [ 8.3353e-02,  7.6756e-02, -1.0076e-01]]],\n",
       "              \n",
       "              \n",
       "                      [[[-4.1829e-02,  5.0864e-02,  5.3302e-02],\n",
       "                        [-1.5649e-02,  4.6805e-02, -1.0832e-01],\n",
       "                        [ 1.2955e-01,  9.8560e-02,  1.9674e-03]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 2.2030e-02,  2.7489e-02,  6.5928e-02],\n",
       "                        [-1.2229e-01,  2.3536e-02,  1.1726e-01],\n",
       "                        [ 7.6986e-02,  7.9108e-02,  9.5975e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-1.1714e-01, -2.5578e-02, -1.0230e-01],\n",
       "                        [-9.4877e-02, -8.6934e-02, -1.4035e-01],\n",
       "                        [-8.5596e-02,  2.5107e-02,  7.7691e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-8.7504e-02, -1.2184e-02,  5.6381e-02],\n",
       "                        [ 1.3651e-01, -2.9189e-02, -2.7672e-02],\n",
       "                        [ 7.5388e-02, -4.9066e-02, -2.6219e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-2.4552e-02,  6.9936e-02, -9.7749e-02],\n",
       "                        [ 1.3218e-01, -1.2034e-01,  1.2640e-01],\n",
       "                        [-6.9391e-02,  1.2266e-01,  3.5982e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 2.9424e-02,  6.2342e-02, -5.3610e-02],\n",
       "                        [ 8.8340e-02,  5.6152e-02, -5.0725e-02],\n",
       "                        [ 6.9307e-02,  3.2401e-02,  6.7712e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 2.4049e-02, -6.5888e-03,  1.7762e-02],\n",
       "                        [-1.3593e-01, -5.0296e-02,  1.2140e-01],\n",
       "                        [-1.0127e-01, -7.3130e-02, -6.3498e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-2.4255e-02, -1.1163e-01,  9.0476e-02],\n",
       "                        [ 6.1383e-02,  2.0293e-02, -1.0500e-01],\n",
       "                        [ 7.3025e-02,  6.9399e-02,  5.7002e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-9.0397e-02, -1.4207e-03, -1.0872e-01],\n",
       "                        [ 3.4817e-02,  1.2747e-01, -1.3728e-01],\n",
       "                        [ 1.7813e-02,  1.2926e-01,  8.0370e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 4.3723e-02, -1.6842e-03, -1.3758e-01],\n",
       "                        [-8.9501e-02,  3.2731e-02,  1.1273e-01],\n",
       "                        [ 3.1930e-02,  6.7083e-02,  9.4148e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 9.7859e-02, -7.0983e-03, -3.7446e-02],\n",
       "                        [ 5.7050e-02,  4.2891e-02,  9.5382e-02],\n",
       "                        [-6.7973e-02,  2.4539e-03,  6.6467e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 3.8842e-02, -7.9371e-02,  8.5976e-02],\n",
       "                        [-4.8829e-02, -9.2837e-02,  3.2081e-02],\n",
       "                        [-1.3347e-01, -5.5755e-02, -5.6257e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-1.0577e-01, -9.7320e-02,  3.1404e-02],\n",
       "                        [ 1.2774e-01, -4.7391e-02,  2.6549e-02],\n",
       "                        [ 4.9595e-02,  3.6854e-02,  6.5513e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 5.4675e-02, -7.5604e-02, -1.4134e-01],\n",
       "                        [ 7.3065e-02,  1.1344e-01,  1.1982e-01],\n",
       "                        [-3.6988e-02, -1.2841e-01, -1.1319e-01]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 3.8451e-02,  2.3763e-02,  9.7375e-02],\n",
       "                        [ 5.9898e-02,  9.5506e-02, -9.4223e-02],\n",
       "                        [ 9.5193e-02, -7.3151e-02, -1.1763e-01]]],\n",
       "              \n",
       "              \n",
       "                      [[[-3.6759e-02,  7.4301e-02,  1.0978e-01],\n",
       "                        [-2.8561e-02, -3.5880e-02,  1.1797e-01],\n",
       "                        [ 1.3146e-01, -5.3205e-02, -9.2522e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 7.3270e-03, -1.4121e-01,  2.2017e-02],\n",
       "                        [-9.3648e-02, -1.0665e-01, -3.9576e-02],\n",
       "                        [ 1.1498e-01,  5.5771e-02,  1.1704e-01]]],\n",
       "              \n",
       "              \n",
       "                      [[[-6.7884e-02,  6.3151e-03, -9.7004e-02],\n",
       "                        [-9.8815e-02, -1.4311e-03,  1.2762e-01],\n",
       "                        [ 2.5979e-02,  9.4768e-02,  6.3514e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 1.1805e-01, -3.5457e-02,  8.1904e-02],\n",
       "                        [ 3.6930e-02,  1.0168e-01,  1.1504e-01],\n",
       "                        [-7.8358e-02,  9.4373e-02,  1.0551e-01]]],\n",
       "              \n",
       "              \n",
       "                      [[[-1.2087e-01,  2.4703e-02,  5.1256e-02],\n",
       "                        [-3.0912e-02,  2.4808e-02,  5.1149e-03],\n",
       "                        [ 1.3344e-01, -8.1552e-02, -7.3241e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-7.3235e-02,  1.2569e-01, -5.3738e-03],\n",
       "                        [ 1.1263e-01, -1.3570e-01,  1.2511e-01],\n",
       "                        [-4.9656e-02,  1.2576e-01,  1.3452e-01]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 1.7566e-03,  1.4116e-01,  1.3675e-01],\n",
       "                        [-7.8075e-02,  9.1748e-02, -5.9672e-02],\n",
       "                        [ 7.1418e-03,  8.6692e-02,  5.3830e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-1.9578e-02,  3.3642e-02,  4.8794e-02],\n",
       "                        [-7.0105e-02, -1.1767e-01,  1.0870e-01],\n",
       "                        [-1.1012e-01,  2.8626e-02,  3.9009e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 1.3826e-01, -4.1880e-02, -9.8093e-02],\n",
       "                        [ 1.0321e-01, -1.2618e-01,  4.0911e-02],\n",
       "                        [ 6.9084e-02,  1.3929e-01,  4.6655e-03]]],\n",
       "              \n",
       "              \n",
       "                      [[[-2.7636e-02,  1.0367e-04,  3.0972e-02],\n",
       "                        [-8.1105e-02,  6.7033e-03, -1.1772e-02],\n",
       "                        [-1.1712e-01, -4.1556e-02,  9.0677e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 9.6962e-02, -3.9109e-02, -8.5354e-02],\n",
       "                        [-9.7173e-02, -9.3869e-02, -1.1233e-01],\n",
       "                        [ 5.7339e-02, -1.4070e-01,  1.1111e-01]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 1.3846e-01,  4.4682e-02,  1.2375e-01],\n",
       "                        [ 1.0292e-01, -5.8475e-02,  2.8211e-02],\n",
       "                        [ 6.8844e-02,  9.5929e-02,  1.2593e-01]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 1.1358e-02, -1.1943e-01, -9.4615e-02],\n",
       "                        [ 1.2956e-01, -4.6367e-02, -8.5077e-02],\n",
       "                        [-5.7080e-02,  3.2206e-02,  1.1036e-01]]],\n",
       "              \n",
       "              \n",
       "                      [[[-7.1809e-02,  8.9374e-02, -9.1039e-03],\n",
       "                        [-3.4269e-02,  4.8226e-02, -1.0832e-01],\n",
       "                        [-9.3824e-02, -3.2086e-02,  4.6849e-02]]]])),\n",
       "             ('conv1.bias',\n",
       "              tensor([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0.])),\n",
       "             ('conv2.depthwise.weight',\n",
       "              tensor([[[[-1.0014e-01, -5.8458e-02, -1.0339e-01],\n",
       "                        [ 1.0981e-01, -4.6687e-02,  5.2292e-02],\n",
       "                        [ 2.5916e-02,  1.8460e-02, -4.4670e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 1.1228e-01,  2.4292e-03,  1.1862e-01],\n",
       "                        [-8.7151e-02,  1.6285e-02, -8.1346e-02],\n",
       "                        [ 3.1762e-02, -1.2826e-01, -7.5567e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-1.2871e-01, -1.1339e-01,  2.1965e-02],\n",
       "                        [ 1.2038e-01,  2.7570e-02, -1.1404e-02],\n",
       "                        [-6.9557e-02,  1.3041e-01,  5.7231e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 1.2998e-01,  1.0023e-01, -1.5078e-03],\n",
       "                        [ 5.3147e-02,  1.1385e-01, -6.3401e-02],\n",
       "                        [ 2.9037e-02,  1.4078e-01,  1.3716e-01]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 1.1020e-01, -9.6119e-02,  1.8216e-03],\n",
       "                        [ 1.3338e-01,  2.1781e-02,  5.6403e-02],\n",
       "                        [ 1.3612e-01, -7.4520e-02, -8.5620e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-2.4114e-02, -8.8697e-02,  4.6478e-02],\n",
       "                        [-6.4430e-02, -9.4087e-02,  6.9517e-02],\n",
       "                        [ 1.2086e-02,  9.5859e-03, -2.0165e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-5.8067e-02, -6.1651e-03, -7.6539e-03],\n",
       "                        [-1.0739e-01, -1.3409e-01, -6.9317e-02],\n",
       "                        [ 1.0660e-01,  6.8349e-02, -5.1601e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 4.7131e-03, -1.2032e-01, -4.9259e-02],\n",
       "                        [ 1.0507e-01,  1.3026e-01, -4.4164e-02],\n",
       "                        [ 8.9664e-03, -3.9978e-02, -9.2274e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 4.7349e-02, -1.2571e-01,  5.4381e-02],\n",
       "                        [ 6.0601e-02,  2.1228e-02,  1.6781e-02],\n",
       "                        [ 3.2196e-02,  1.2713e-01,  1.1307e-01]]],\n",
       "              \n",
       "              \n",
       "                      [[[-1.0072e-01,  3.8622e-03, -1.0595e-01],\n",
       "                        [-1.0015e-01,  3.0749e-02, -1.3476e-01],\n",
       "                        [ 1.0575e-01,  9.9356e-02,  2.6984e-03]]],\n",
       "              \n",
       "              \n",
       "                      [[[-1.0052e-02,  3.5705e-02, -3.6625e-02],\n",
       "                        [-1.1047e-01, -9.2049e-02,  1.1222e-01],\n",
       "                        [-1.3135e-01,  3.2493e-03,  1.2429e-01]]],\n",
       "              \n",
       "              \n",
       "                      [[[-8.7375e-02,  3.7278e-02, -4.1578e-02],\n",
       "                        [ 8.5689e-02,  6.2039e-02, -5.8000e-02],\n",
       "                        [-3.0943e-02, -1.2406e-01, -1.2075e-01]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 5.8002e-02,  1.3136e-01, -1.3463e-01],\n",
       "                        [-6.0221e-02,  9.6415e-02, -8.8846e-02],\n",
       "                        [ 1.3067e-01,  1.3039e-01,  1.0103e-01]]],\n",
       "              \n",
       "              \n",
       "                      [[[-2.5232e-02, -8.4379e-02,  1.1335e-01],\n",
       "                        [ 1.4158e-01, -2.4796e-02,  1.1637e-01],\n",
       "                        [ 2.7295e-02, -1.5091e-02,  2.2248e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 1.1136e-01, -1.0366e-01, -1.1143e-01],\n",
       "                        [-3.6366e-03, -7.1697e-02,  2.6088e-02],\n",
       "                        [ 1.3256e-01, -7.7541e-02,  8.3784e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-7.9371e-02,  1.0867e-02,  9.8798e-02],\n",
       "                        [-7.7985e-02, -1.0906e-01,  1.1123e-01],\n",
       "                        [-5.6654e-02,  6.4389e-02, -9.5495e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 8.8804e-03,  1.2938e-01,  3.7328e-02],\n",
       "                        [-1.2518e-01,  1.0918e-01, -1.0485e-01],\n",
       "                        [ 3.3967e-02, -9.0471e-02, -1.3264e-01]]],\n",
       "              \n",
       "              \n",
       "                      [[[-5.7538e-02,  1.1208e-01,  2.4481e-03],\n",
       "                        [-1.0962e-02, -4.1173e-02,  1.2678e-02],\n",
       "                        [ 1.4976e-02,  5.0440e-02, -3.6689e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 1.3233e-01,  5.7668e-02,  8.2857e-02],\n",
       "                        [-6.6456e-02, -3.0876e-02,  1.2929e-01],\n",
       "                        [ 1.2704e-01,  8.9465e-02,  1.7809e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 1.2825e-01,  1.1572e-01,  1.2443e-01],\n",
       "                        [ 7.2662e-03,  3.0505e-02,  1.5906e-02],\n",
       "                        [-4.6959e-02,  3.5757e-03,  6.0998e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 1.2104e-01, -5.6509e-02, -7.7041e-03],\n",
       "                        [ 7.2191e-02, -4.5737e-02, -3.1424e-02],\n",
       "                        [-9.8091e-03,  1.1378e-01,  7.5469e-03]]],\n",
       "              \n",
       "              \n",
       "                      [[[-9.9529e-02,  6.0761e-02,  6.8035e-02],\n",
       "                        [-7.4742e-02,  7.8181e-02, -7.5238e-03],\n",
       "                        [-1.1465e-01,  1.4179e-01, -1.1411e-01]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 2.5277e-02, -1.1696e-01,  1.0985e-01],\n",
       "                        [-1.2872e-01,  1.2428e-01, -1.2261e-03],\n",
       "                        [-1.2039e-01,  1.2743e-01, -7.0824e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 1.0435e-01,  3.4764e-05, -7.2826e-02],\n",
       "                        [-1.0640e-01, -3.6229e-02,  7.3872e-02],\n",
       "                        [ 2.0240e-02, -8.8822e-02,  2.0129e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 3.0453e-02,  1.2253e-01,  2.7876e-03],\n",
       "                        [-1.1580e-01,  2.5301e-02,  5.9282e-02],\n",
       "                        [ 1.5340e-02, -1.0396e-01,  1.0214e-03]]],\n",
       "              \n",
       "              \n",
       "                      [[[-8.2775e-02, -7.7415e-02,  9.3837e-02],\n",
       "                        [-9.5339e-02,  8.2529e-02,  5.2380e-02],\n",
       "                        [-2.8284e-02, -1.0586e-01, -4.2886e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 8.8288e-02,  7.5813e-02,  8.3791e-03],\n",
       "                        [-5.8215e-02, -1.1435e-01, -2.5022e-02],\n",
       "                        [ 1.3833e-01, -1.2163e-01, -5.5024e-03]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 1.0750e-01, -1.6738e-02,  9.6192e-02],\n",
       "                        [-4.7854e-03, -1.3296e-01,  1.2028e-01],\n",
       "                        [ 9.3996e-02,  5.4227e-02, -7.4141e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 4.5683e-02, -1.9156e-02,  3.8374e-02],\n",
       "                        [ 7.4899e-02, -8.0147e-02,  1.2200e-01],\n",
       "                        [-8.6229e-02, -4.5764e-02,  1.1530e-01]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 1.3625e-02, -1.2837e-01, -4.9693e-02],\n",
       "                        [ 2.5050e-02, -1.2468e-01, -6.1700e-02],\n",
       "                        [-1.3708e-01, -1.1825e-01, -2.9708e-03]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 7.4408e-02, -3.4364e-02, -6.2804e-04],\n",
       "                        [ 1.0269e-01, -5.4129e-02,  2.3081e-02],\n",
       "                        [ 1.3019e-01, -9.4961e-02,  3.2726e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-1.0886e-03,  5.0362e-02,  2.6662e-02],\n",
       "                        [ 8.0558e-02,  7.3136e-02, -1.1337e-01],\n",
       "                        [-1.0488e-01,  6.4757e-02, -3.1669e-02]]]])),\n",
       "             ('conv2.depthwise.bias',\n",
       "              tensor([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0.])),\n",
       "             ('conv2.pointwise.weight',\n",
       "              tensor([[[[ 0.1724]],\n",
       "              \n",
       "                       [[ 0.0399]],\n",
       "              \n",
       "                       [[ 0.2519]],\n",
       "              \n",
       "                       ...,\n",
       "              \n",
       "                       [[ 0.0760]],\n",
       "              \n",
       "                       [[ 0.1452]],\n",
       "              \n",
       "                       [[ 0.1465]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.2822]],\n",
       "              \n",
       "                       [[ 0.1245]],\n",
       "              \n",
       "                       [[ 0.1072]],\n",
       "              \n",
       "                       ...,\n",
       "              \n",
       "                       [[ 0.1159]],\n",
       "              \n",
       "                       [[ 0.0976]],\n",
       "              \n",
       "                       [[ 0.2993]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.1927]],\n",
       "              \n",
       "                       [[ 0.1280]],\n",
       "              \n",
       "                       [[ 0.2435]],\n",
       "              \n",
       "                       ...,\n",
       "              \n",
       "                       [[-0.0601]],\n",
       "              \n",
       "                       [[-0.2545]],\n",
       "              \n",
       "                       [[ 0.2860]]],\n",
       "              \n",
       "              \n",
       "                      ...,\n",
       "              \n",
       "              \n",
       "                      [[[ 0.2846]],\n",
       "              \n",
       "                       [[ 0.0280]],\n",
       "              \n",
       "                       [[-0.0863]],\n",
       "              \n",
       "                       ...,\n",
       "              \n",
       "                       [[ 0.1272]],\n",
       "              \n",
       "                       [[-0.0239]],\n",
       "              \n",
       "                       [[ 0.1304]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.2943]],\n",
       "              \n",
       "                       [[-0.0357]],\n",
       "              \n",
       "                       [[ 0.2230]],\n",
       "              \n",
       "                       ...,\n",
       "              \n",
       "                       [[-0.1149]],\n",
       "              \n",
       "                       [[ 0.2364]],\n",
       "              \n",
       "                       [[ 0.0124]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.2911]],\n",
       "              \n",
       "                       [[-0.3040]],\n",
       "              \n",
       "                       [[ 0.0407]],\n",
       "              \n",
       "                       ...,\n",
       "              \n",
       "                       [[-0.1786]],\n",
       "              \n",
       "                       [[ 0.0551]],\n",
       "              \n",
       "                       [[-0.2206]]]])),\n",
       "             ('conv2.pointwise.bias',\n",
       "              tensor([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0.])),\n",
       "             ('conv3.depthwise.weight',\n",
       "              tensor([[[[-0.0096,  0.1120,  0.1290],\n",
       "                        [-0.0507,  0.0924,  0.0235],\n",
       "                        [ 0.1205, -0.0761,  0.0911]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0962,  0.0975,  0.0172],\n",
       "                        [-0.0105,  0.0674, -0.0074],\n",
       "                        [-0.1165,  0.1324, -0.0610]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.1163, -0.1285,  0.0583],\n",
       "                        [ 0.0833,  0.0998,  0.0125],\n",
       "                        [ 0.0270, -0.0316, -0.1245]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0076,  0.0780,  0.1378],\n",
       "                        [ 0.0420,  0.0022, -0.1197],\n",
       "                        [ 0.1219, -0.0380, -0.1398]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0476, -0.0152,  0.0180],\n",
       "                        [ 0.0844, -0.0013,  0.1276],\n",
       "                        [ 0.0457, -0.0315, -0.0558]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0143, -0.0158, -0.0222],\n",
       "                        [ 0.0103, -0.0541,  0.0457],\n",
       "                        [-0.0819,  0.0591, -0.1361]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0068,  0.1089, -0.0149],\n",
       "                        [-0.1037, -0.0122, -0.0246],\n",
       "                        [ 0.1404, -0.0644, -0.0520]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0953,  0.0551,  0.1265],\n",
       "                        [-0.0657,  0.1034, -0.0565],\n",
       "                        [ 0.0941, -0.0891, -0.0362]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0246, -0.0648, -0.1178],\n",
       "                        [ 0.1065, -0.0428,  0.1233],\n",
       "                        [-0.0053, -0.0648,  0.0110]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.1304, -0.1308, -0.1290],\n",
       "                        [-0.1303,  0.0364, -0.1056],\n",
       "                        [ 0.0559,  0.1022,  0.0688]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.1361, -0.0378, -0.1412],\n",
       "                        [ 0.0413, -0.1387, -0.0509],\n",
       "                        [-0.0540, -0.0696, -0.1028]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0933,  0.0072,  0.0915],\n",
       "                        [-0.0150,  0.1171,  0.0007],\n",
       "                        [ 0.1353,  0.0839, -0.1136]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.1178, -0.1242,  0.0223],\n",
       "                        [-0.0370,  0.1418, -0.0539],\n",
       "                        [-0.0047, -0.0740, -0.0694]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.1230, -0.0243,  0.0920],\n",
       "                        [ 0.1077, -0.1404, -0.1294],\n",
       "                        [ 0.0381, -0.0297,  0.0091]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.1419,  0.1369,  0.1158],\n",
       "                        [-0.0192, -0.0576,  0.0595],\n",
       "                        [-0.0270, -0.0742, -0.1367]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0258, -0.0486,  0.0400],\n",
       "                        [-0.0321, -0.0553, -0.0338],\n",
       "                        [ 0.0036, -0.0829, -0.0560]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0175, -0.0161, -0.0033],\n",
       "                        [-0.0176, -0.0591, -0.0126],\n",
       "                        [-0.0155, -0.0344,  0.0554]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.1185, -0.1307, -0.1178],\n",
       "                        [-0.1191,  0.1412,  0.0092],\n",
       "                        [ 0.0548, -0.1033,  0.1272]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0786,  0.0280, -0.0221],\n",
       "                        [ 0.1267,  0.1229, -0.1267],\n",
       "                        [ 0.0410, -0.0081,  0.0530]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0844,  0.0047, -0.1287],\n",
       "                        [ 0.0158,  0.0316, -0.0804],\n",
       "                        [-0.1205,  0.1375, -0.0120]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.1281,  0.1122, -0.0784],\n",
       "                        [-0.0813, -0.1070,  0.0413],\n",
       "                        [ 0.0517,  0.1097,  0.0365]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0025,  0.0258,  0.0729],\n",
       "                        [ 0.0667,  0.0045,  0.1010],\n",
       "                        [ 0.1390, -0.1408,  0.0312]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0607,  0.1086,  0.1015],\n",
       "                        [ 0.0401,  0.0879,  0.0586],\n",
       "                        [ 0.0773,  0.1399, -0.0420]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0279,  0.0298,  0.1076],\n",
       "                        [ 0.0288,  0.0828,  0.0736],\n",
       "                        [ 0.0790, -0.1137,  0.0643]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0756, -0.0897,  0.0648],\n",
       "                        [ 0.0578,  0.1199, -0.0968],\n",
       "                        [ 0.0046,  0.0604, -0.1041]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0196, -0.0524, -0.0836],\n",
       "                        [ 0.0882,  0.1005, -0.1255],\n",
       "                        [ 0.0933, -0.0003, -0.0407]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.1417, -0.1040,  0.1002],\n",
       "                        [-0.0208,  0.0307,  0.1335],\n",
       "                        [ 0.0107, -0.0658,  0.0495]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0209, -0.0467, -0.0153],\n",
       "                        [-0.0474, -0.0240,  0.1318],\n",
       "                        [-0.0761, -0.0363, -0.0002]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0234, -0.0706, -0.0409],\n",
       "                        [-0.1135,  0.0538,  0.0310],\n",
       "                        [ 0.0698,  0.0756, -0.0671]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0269,  0.0188,  0.0615],\n",
       "                        [ 0.0894,  0.0567,  0.0976],\n",
       "                        [ 0.0338,  0.0800, -0.0480]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0247,  0.1211, -0.1381],\n",
       "                        [-0.1006,  0.0080, -0.0925],\n",
       "                        [ 0.0589, -0.0980,  0.0777]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0320,  0.1091, -0.1161],\n",
       "                        [-0.0824, -0.0795,  0.1132],\n",
       "                        [ 0.0957, -0.0048,  0.0773]]]])),\n",
       "             ('conv3.depthwise.bias',\n",
       "              tensor([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0.])),\n",
       "             ('conv3.pointwise.weight',\n",
       "              tensor([[[[-0.1412]],\n",
       "              \n",
       "                       [[-0.0398]],\n",
       "              \n",
       "                       [[ 0.1308]],\n",
       "              \n",
       "                       ...,\n",
       "              \n",
       "                       [[ 0.1317]],\n",
       "              \n",
       "                       [[-0.0227]],\n",
       "              \n",
       "                       [[-0.0611]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0767]],\n",
       "              \n",
       "                       [[-0.1139]],\n",
       "              \n",
       "                       [[-0.1714]],\n",
       "              \n",
       "                       ...,\n",
       "              \n",
       "                       [[ 0.1217]],\n",
       "              \n",
       "                       [[ 0.1922]],\n",
       "              \n",
       "                       [[-0.2140]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0392]],\n",
       "              \n",
       "                       [[-0.0625]],\n",
       "              \n",
       "                       [[ 0.0612]],\n",
       "              \n",
       "                       ...,\n",
       "              \n",
       "                       [[ 0.1074]],\n",
       "              \n",
       "                       [[-0.2115]],\n",
       "              \n",
       "                       [[ 0.1854]]],\n",
       "              \n",
       "              \n",
       "                      ...,\n",
       "              \n",
       "              \n",
       "                      [[[-0.1979]],\n",
       "              \n",
       "                       [[ 0.1295]],\n",
       "              \n",
       "                       [[-0.0481]],\n",
       "              \n",
       "                       ...,\n",
       "              \n",
       "                       [[-0.2400]],\n",
       "              \n",
       "                       [[ 0.2459]],\n",
       "              \n",
       "                       [[-0.1678]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0427]],\n",
       "              \n",
       "                       [[ 0.2341]],\n",
       "              \n",
       "                       [[ 0.2222]],\n",
       "              \n",
       "                       ...,\n",
       "              \n",
       "                       [[ 0.2322]],\n",
       "              \n",
       "                       [[ 0.2101]],\n",
       "              \n",
       "                       [[ 0.2075]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0352]],\n",
       "              \n",
       "                       [[-0.0782]],\n",
       "              \n",
       "                       [[-0.0602]],\n",
       "              \n",
       "                       ...,\n",
       "              \n",
       "                       [[-0.1985]],\n",
       "              \n",
       "                       [[-0.2350]],\n",
       "              \n",
       "                       [[-0.1734]]]])),\n",
       "             ('conv3.pointwise.bias',\n",
       "              tensor([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])),\n",
       "             ('conv4.depthwise.weight',\n",
       "              tensor([[[[ 0.0941,  0.0771,  0.0223],\n",
       "                        [-0.0345,  0.0876, -0.0866],\n",
       "                        [-0.0127, -0.0122,  0.0121]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0106,  0.0721, -0.0735],\n",
       "                        [ 0.0570,  0.0192, -0.0697],\n",
       "                        [ 0.0162,  0.0307,  0.0290]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0233,  0.0150,  0.0598],\n",
       "                        [-0.0285, -0.0030, -0.0600],\n",
       "                        [ 0.0628, -0.0975, -0.0083]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0642,  0.0999,  0.0430],\n",
       "                        [-0.0310, -0.0202, -0.0456],\n",
       "                        [ 0.0041,  0.0407, -0.0993]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0889,  0.0325, -0.0648],\n",
       "                        [ 0.0618,  0.0947,  0.0789],\n",
       "                        [-0.0153, -0.0373,  0.0398]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0076, -0.0998,  0.0034],\n",
       "                        [-0.0225, -0.0352, -0.0484],\n",
       "                        [-0.0066, -0.0084, -0.0501]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0131, -0.0150,  0.0383],\n",
       "                        [-0.0108,  0.1012, -0.0517],\n",
       "                        [-0.0186,  0.0544, -0.0810]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0241,  0.0982, -0.0167],\n",
       "                        [-0.0942,  0.0788, -0.0548],\n",
       "                        [ 0.0828,  0.0299, -0.0030]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0694,  0.0139,  0.0869],\n",
       "                        [ 0.0968, -0.0030,  0.0336],\n",
       "                        [ 0.0697,  0.0972,  0.0452]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0518,  0.0163,  0.0381],\n",
       "                        [-0.0994, -0.0097,  0.0771],\n",
       "                        [-0.0675, -0.0987,  0.0597]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0230,  0.0968,  0.0930],\n",
       "                        [ 0.0509, -0.0593,  0.0378],\n",
       "                        [-0.0384,  0.0532, -0.0840]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0155,  0.0796, -0.0604],\n",
       "                        [ 0.0286, -0.0316, -0.0400],\n",
       "                        [ 0.0151, -0.0717, -0.0373]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0613, -0.0537, -0.0514],\n",
       "                        [ 0.0751, -0.0581,  0.0744],\n",
       "                        [ 0.0163, -0.0945, -0.0515]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0245,  0.0279, -0.0895],\n",
       "                        [ 0.0006, -0.0368, -0.0720],\n",
       "                        [ 0.0832,  0.0986, -0.0489]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0745,  0.0854,  0.0188],\n",
       "                        [-0.0353, -0.0400, -0.0949],\n",
       "                        [-0.0705,  0.0959,  0.0942]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0870, -0.0061, -0.0966],\n",
       "                        [ 0.0164,  0.0767, -0.0990],\n",
       "                        [ 0.0533,  0.0381, -0.0271]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0956, -0.0890,  0.0204],\n",
       "                        [ 0.0149,  0.0757,  0.0059],\n",
       "                        [ 0.0714,  0.0628,  0.0246]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0584, -0.0090, -0.0558],\n",
       "                        [ 0.0588, -0.0581,  0.0226],\n",
       "                        [ 0.0167, -0.0906, -0.0484]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0669,  0.0962,  0.0396],\n",
       "                        [ 0.0612, -0.0659, -0.0500],\n",
       "                        [-0.0580,  0.0638,  0.0576]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0805,  0.0149,  0.0301],\n",
       "                        [ 0.0924, -0.0096, -0.0902],\n",
       "                        [-0.0247, -0.0302,  0.0340]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0639, -0.0857, -0.0913],\n",
       "                        [ 0.0123, -0.0203, -0.0861],\n",
       "                        [-0.0291, -0.0951, -0.0024]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0361,  0.0117, -0.0947],\n",
       "                        [ 0.0206,  0.0416, -0.0103],\n",
       "                        [-0.1004,  0.0474,  0.0667]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0610,  0.0529, -0.0132],\n",
       "                        [-0.0852,  0.0151,  0.0866],\n",
       "                        [ 0.0918,  0.0403,  0.0577]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0986, -0.0381,  0.0706],\n",
       "                        [-0.0842, -0.0056,  0.0925],\n",
       "                        [-0.0328, -0.0752,  0.0209]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0263, -0.0735, -0.0395],\n",
       "                        [ 0.0628,  0.0544, -0.0531],\n",
       "                        [ 0.0784,  0.0113,  0.0839]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0140,  0.0582, -0.0597],\n",
       "                        [ 0.0575,  0.0212, -0.0504],\n",
       "                        [ 0.0667,  0.0208,  0.0751]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0031, -0.0559, -0.0676],\n",
       "                        [-0.0034,  0.0380,  0.0523],\n",
       "                        [-0.0339,  0.0726, -0.0831]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0741,  0.0298, -0.0500],\n",
       "                        [-0.0030, -0.0873, -0.0357],\n",
       "                        [-0.0831, -0.0835,  0.0625]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0998,  0.0715, -0.0879],\n",
       "                        [-0.0814,  0.0908,  0.0974],\n",
       "                        [-0.0076,  0.0752, -0.0995]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0346,  0.0767, -0.0639],\n",
       "                        [ 0.0258,  0.0057,  0.0313],\n",
       "                        [-0.0669, -0.0276,  0.0304]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0848, -0.0843, -0.0646],\n",
       "                        [-0.0722,  0.0487, -0.0081],\n",
       "                        [-0.0022,  0.0053,  0.0232]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0520, -0.0033,  0.0417],\n",
       "                        [-0.0156, -0.0598, -0.0087],\n",
       "                        [ 0.0822,  0.0974,  0.0528]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0195, -0.0789, -0.0743],\n",
       "                        [ 0.0099,  0.0741,  0.0724],\n",
       "                        [ 0.0607, -0.0747, -0.0532]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0658,  0.0647, -0.0190],\n",
       "                        [-0.0367, -0.0465,  0.0216],\n",
       "                        [ 0.0055,  0.0574,  0.0848]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0530,  0.0045,  0.0063],\n",
       "                        [-0.0633,  0.0232, -0.0433],\n",
       "                        [ 0.0185,  0.0830,  0.0263]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0980,  0.0315, -0.0735],\n",
       "                        [ 0.0748,  0.0864, -0.0592],\n",
       "                        [-0.0140, -0.0826,  0.0644]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0870,  0.0649,  0.0223],\n",
       "                        [ 0.0115, -0.0039,  0.0227],\n",
       "                        [ 0.0768, -0.0831,  0.0592]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0455,  0.0431,  0.0080],\n",
       "                        [-0.0500, -0.0363, -0.0027],\n",
       "                        [ 0.0601,  0.0359,  0.0898]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0214,  0.0501,  0.0818],\n",
       "                        [-0.0841,  0.0315, -0.0119],\n",
       "                        [-0.0160,  0.0195, -0.0718]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0811,  0.0004,  0.0396],\n",
       "                        [ 0.0711,  0.0990,  0.0283],\n",
       "                        [-0.0677,  0.0018, -0.0222]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0143,  0.0711,  0.0668],\n",
       "                        [ 0.0375,  0.0534,  0.0543],\n",
       "                        [-0.0596, -0.0929, -0.0802]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0633, -0.0886,  0.0952],\n",
       "                        [ 0.0801, -0.0166, -0.0868],\n",
       "                        [ 0.0120,  0.0230,  0.0378]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0368, -0.0878, -0.0171],\n",
       "                        [-0.1002,  0.0088,  0.0515],\n",
       "                        [ 0.0307, -0.0508,  0.0653]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0420, -0.0902,  0.0059],\n",
       "                        [ 0.0969, -0.0209,  0.0891],\n",
       "                        [ 0.0792,  0.0821, -0.0303]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0390,  0.0202, -0.0200],\n",
       "                        [ 0.0728,  0.0424, -0.0566],\n",
       "                        [ 0.0839, -0.0631,  0.0100]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0695, -0.0731,  0.0209],\n",
       "                        [-0.0914, -0.0116, -0.0710],\n",
       "                        [ 0.0276, -0.0048, -0.0362]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0334, -0.0470, -0.0946],\n",
       "                        [ 0.0630, -0.0692, -0.0054],\n",
       "                        [-0.0809, -0.0986,  0.0247]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0698,  0.0764, -0.0294],\n",
       "                        [ 0.0226, -0.0470,  0.0458],\n",
       "                        [ 0.0959, -0.0572,  0.0218]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0556, -0.0014,  0.0562],\n",
       "                        [ 0.0069,  0.0031, -0.0876],\n",
       "                        [-0.0954,  0.0743,  0.0421]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0286, -0.0398, -0.0859],\n",
       "                        [ 0.0333, -0.0774, -0.0497],\n",
       "                        [ 0.0704,  0.0295, -0.0954]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0539, -0.0708,  0.0936],\n",
       "                        [ 0.0742, -0.0879,  0.0087],\n",
       "                        [-0.0342,  0.0044,  0.0728]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0698, -0.0156, -0.0459],\n",
       "                        [ 0.0493,  0.0875,  0.0469],\n",
       "                        [-0.0093, -0.0502,  0.0734]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0300, -0.0489, -0.0147],\n",
       "                        [-0.0328,  0.0594, -0.0288],\n",
       "                        [-0.0829, -0.0540, -0.0656]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0884,  0.0570,  0.0949],\n",
       "                        [-0.0853,  0.0315, -0.0355],\n",
       "                        [ 0.0772, -0.0766, -0.0811]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0586,  0.0590,  0.0057],\n",
       "                        [ 0.0311, -0.0093, -0.0016],\n",
       "                        [ 0.0467,  0.0329,  0.0022]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0410, -0.0737, -0.0689],\n",
       "                        [ 0.0756,  0.0170,  0.0449],\n",
       "                        [ 0.0504,  0.0183,  0.0821]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0129, -0.0496, -0.0825],\n",
       "                        [ 0.0761,  0.0201, -0.0886],\n",
       "                        [ 0.0953,  0.0683,  0.0769]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0842, -0.0278, -0.0164],\n",
       "                        [-0.0704,  0.0401,  0.0754],\n",
       "                        [ 0.0310, -0.0169,  0.0562]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0700, -0.0852, -0.0506],\n",
       "                        [-0.0911, -0.0109,  0.0910],\n",
       "                        [ 0.0558, -0.0357,  0.0501]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0314,  0.0035, -0.0534],\n",
       "                        [-0.0537, -0.0431, -0.0068],\n",
       "                        [ 0.0857,  0.0028,  0.0614]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0541, -0.0636,  0.0673],\n",
       "                        [ 0.0556, -0.0584,  0.0500],\n",
       "                        [ 0.0283,  0.0538,  0.0532]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0402, -0.0698,  0.0622],\n",
       "                        [-0.0328,  0.0346,  0.0418],\n",
       "                        [-0.0843,  0.0801,  0.0888]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0779,  0.0735, -0.0139],\n",
       "                        [ 0.0841, -0.0961,  0.0893],\n",
       "                        [ 0.0503, -0.0716, -0.0661]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0169,  0.0123, -0.0177],\n",
       "                        [ 0.0671,  0.0880,  0.0699],\n",
       "                        [ 0.0067, -0.0487,  0.0088]]]])),\n",
       "             ('conv4.depthwise.bias',\n",
       "              tensor([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])),\n",
       "             ('conv4.pointwise.weight',\n",
       "              tensor([[[[ 0.0419]],\n",
       "              \n",
       "                       [[-0.0671]],\n",
       "              \n",
       "                       [[ 0.0125]],\n",
       "              \n",
       "                       ...,\n",
       "              \n",
       "                       [[ 0.1021]],\n",
       "              \n",
       "                       [[-0.0142]],\n",
       "              \n",
       "                       [[-0.1199]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.1079]],\n",
       "              \n",
       "                       [[-0.0637]],\n",
       "              \n",
       "                       [[-0.0029]],\n",
       "              \n",
       "                       ...,\n",
       "              \n",
       "                       [[ 0.0492]],\n",
       "              \n",
       "                       [[ 0.0513]],\n",
       "              \n",
       "                       [[-0.0651]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.1390]],\n",
       "              \n",
       "                       [[ 0.0230]],\n",
       "              \n",
       "                       [[-0.0466]],\n",
       "              \n",
       "                       ...,\n",
       "              \n",
       "                       [[-0.2134]],\n",
       "              \n",
       "                       [[ 0.0216]],\n",
       "              \n",
       "                       [[-0.0711]]],\n",
       "              \n",
       "              \n",
       "                      ...,\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0212]],\n",
       "              \n",
       "                       [[ 0.0829]],\n",
       "              \n",
       "                       [[-0.1566]],\n",
       "              \n",
       "                       ...,\n",
       "              \n",
       "                       [[-0.0227]],\n",
       "              \n",
       "                       [[-0.1304]],\n",
       "              \n",
       "                       [[-0.0117]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0142]],\n",
       "              \n",
       "                       [[-0.2118]],\n",
       "              \n",
       "                       [[ 0.0026]],\n",
       "              \n",
       "                       ...,\n",
       "              \n",
       "                       [[-0.1613]],\n",
       "              \n",
       "                       [[-0.0862]],\n",
       "              \n",
       "                       [[-0.0269]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0652]],\n",
       "              \n",
       "                       [[ 0.1831]],\n",
       "              \n",
       "                       [[-0.0466]],\n",
       "              \n",
       "                       ...,\n",
       "              \n",
       "                       [[ 0.0149]],\n",
       "              \n",
       "                       [[-0.1767]],\n",
       "              \n",
       "                       [[ 0.0647]]]])),\n",
       "             ('conv4.pointwise.bias',\n",
       "              tensor([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])),\n",
       "             ('conv5.depthwise.weight',\n",
       "              tensor([[[[ 7.0416e-02, -4.6336e-02,  8.6198e-02],\n",
       "                        [ 7.8439e-02, -7.3380e-02, -3.4951e-02],\n",
       "                        [ 7.1780e-02, -6.7799e-02,  5.6702e-03]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 3.1015e-03,  8.0847e-02, -5.8813e-03],\n",
       "                        [ 2.9872e-02,  3.0638e-02, -7.6526e-02],\n",
       "                        [ 2.4647e-02, -6.3803e-02,  2.2520e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-9.3797e-02,  1.9403e-02,  1.3463e-02],\n",
       "                        [ 3.7215e-02, -3.7063e-02,  4.4255e-02],\n",
       "                        [-7.4179e-02, -8.3713e-02,  9.8553e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-2.1452e-02,  6.2799e-02,  5.4050e-02],\n",
       "                        [ 3.2371e-02,  6.7539e-03,  6.4160e-02],\n",
       "                        [-9.7953e-02,  1.1863e-02,  2.5254e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 3.1381e-02, -9.1230e-02, -6.4828e-02],\n",
       "                        [ 5.9418e-02, -3.4722e-02,  6.6115e-02],\n",
       "                        [-5.2242e-02, -4.6096e-02,  3.4450e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-5.7717e-03, -3.6659e-02,  4.9613e-02],\n",
       "                        [-6.8200e-04, -7.9730e-02,  8.9703e-03],\n",
       "                        [-4.3340e-02,  4.9707e-02,  8.5691e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 3.2864e-03,  6.8704e-02, -9.0788e-02],\n",
       "                        [ 4.3071e-02,  2.6944e-02, -7.9643e-02],\n",
       "                        [ 3.2010e-02, -8.8881e-02, -6.7241e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-9.4690e-02,  1.9608e-02, -5.2124e-02],\n",
       "                        [-6.5543e-02, -3.4873e-03,  1.5120e-02],\n",
       "                        [-2.9498e-02,  7.5549e-02, -8.7806e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-8.5593e-02,  6.9995e-03, -2.8872e-02],\n",
       "                        [ 8.8220e-02,  7.7829e-02, -5.0280e-02],\n",
       "                        [ 3.2133e-02, -9.5153e-02, -4.2650e-03]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 4.1859e-02, -7.8544e-02,  3.7013e-02],\n",
       "                        [-5.6007e-02,  7.8840e-02,  7.5583e-02],\n",
       "                        [-4.0588e-02, -6.8236e-02, -5.8183e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-4.8262e-02,  8.9636e-02,  1.1882e-03],\n",
       "                        [ 7.6473e-02,  7.8933e-03,  5.2285e-02],\n",
       "                        [ 6.7793e-02,  9.5652e-02,  4.7511e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-5.9128e-02,  8.3164e-02,  1.9184e-02],\n",
       "                        [ 2.3952e-02, -6.7628e-02,  5.3887e-02],\n",
       "                        [-1.1328e-02, -5.0159e-02, -2.4041e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 3.7905e-02,  1.3611e-02,  6.3089e-02],\n",
       "                        [ 8.3164e-02, -1.6682e-02,  3.5651e-02],\n",
       "                        [ 2.0311e-02,  7.0667e-02, -2.4275e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 1.0190e-02,  6.3854e-02, -2.5171e-03],\n",
       "                        [-3.2376e-03, -7.3860e-02, -2.8984e-02],\n",
       "                        [-8.8291e-02, -8.3546e-02,  1.9416e-03]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 9.6676e-02,  2.8819e-02,  3.8637e-02],\n",
       "                        [-7.7364e-02,  9.4648e-02, -5.7376e-02],\n",
       "                        [-3.1682e-03, -2.1322e-02, -5.5804e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-7.9513e-02, -7.7629e-02,  4.3423e-02],\n",
       "                        [ 4.1857e-02, -4.7895e-02,  2.1227e-02],\n",
       "                        [-3.3593e-02, -8.5484e-02,  8.8523e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-4.9470e-02,  3.6678e-02, -6.9263e-02],\n",
       "                        [-4.1755e-03, -5.6480e-03,  4.6663e-02],\n",
       "                        [ 6.4613e-02, -5.5230e-02, -9.7978e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 5.7358e-02, -3.9176e-02, -9.6316e-02],\n",
       "                        [ 2.2409e-02, -5.2176e-02,  9.0748e-03],\n",
       "                        [-8.4976e-02, -8.1651e-02,  2.0262e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-9.0561e-02,  6.9959e-02, -6.5091e-02],\n",
       "                        [-6.1214e-02, -5.4836e-02,  6.4486e-02],\n",
       "                        [-5.3820e-02, -7.7393e-02,  8.7320e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 9.1920e-02, -9.5887e-02, -2.9854e-02],\n",
       "                        [-5.6071e-02, -3.1294e-02, -6.0688e-03],\n",
       "                        [-1.8844e-02, -5.2011e-02,  6.3594e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 4.2469e-03, -8.3845e-02,  5.0896e-02],\n",
       "                        [ 7.3567e-02,  7.3753e-02, -8.0894e-02],\n",
       "                        [-8.1779e-02,  7.3127e-02, -3.6782e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-7.4608e-02,  1.8732e-02,  9.7428e-02],\n",
       "                        [ 3.4359e-02, -8.2085e-02, -7.0773e-02],\n",
       "                        [-2.0019e-02,  7.9555e-02,  5.6521e-03]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 5.2465e-02,  1.0184e-02,  1.1533e-02],\n",
       "                        [ 8.5094e-02,  7.3624e-02, -1.5930e-02],\n",
       "                        [ 4.4441e-02, -6.5323e-02, -1.1961e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 3.3570e-02, -8.5988e-02, -7.4170e-02],\n",
       "                        [-4.0708e-02,  6.2380e-02, -1.8018e-02],\n",
       "                        [-6.6904e-02, -7.0654e-02,  3.0510e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 9.3276e-02,  4.2076e-02, -9.1449e-02],\n",
       "                        [-3.9999e-02,  3.7804e-02, -7.3700e-02],\n",
       "                        [-3.6565e-02, -7.9674e-03, -3.3756e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 3.6824e-02, -7.3261e-02, -6.5647e-02],\n",
       "                        [-5.1516e-02,  4.4673e-02, -4.1980e-02],\n",
       "                        [-8.5370e-02,  9.0508e-02, -8.2964e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-2.5128e-02, -7.1994e-02,  4.2804e-02],\n",
       "                        [ 9.0743e-02,  2.8320e-02,  5.5264e-02],\n",
       "                        [-7.1041e-03,  7.5764e-02,  7.7057e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-6.1451e-02, -6.2882e-02, -5.6458e-02],\n",
       "                        [-4.9897e-02,  8.5304e-02,  6.7733e-02],\n",
       "                        [-6.7372e-02, -8.9542e-02, -7.3551e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-4.7465e-02,  1.6441e-02,  8.1963e-02],\n",
       "                        [-9.7777e-02, -9.1737e-02,  2.3993e-02],\n",
       "                        [-3.3940e-02, -2.0148e-02, -7.9450e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 6.8242e-02, -8.4854e-02, -2.8262e-02],\n",
       "                        [-5.1596e-02, -3.7587e-04,  7.7754e-02],\n",
       "                        [-6.8219e-02,  4.9655e-02,  2.8310e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-2.1840e-02, -5.8936e-02, -4.9226e-02],\n",
       "                        [-8.6494e-02, -1.8909e-02,  5.4347e-02],\n",
       "                        [-2.9407e-02, -3.5847e-02,  2.6122e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-4.0004e-02,  3.0751e-02, -6.4204e-02],\n",
       "                        [ 2.1158e-03, -6.8110e-02,  4.0196e-02],\n",
       "                        [ 1.1525e-02, -3.2451e-03, -3.8358e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 3.9562e-02, -4.6030e-02, -3.0229e-02],\n",
       "                        [ 4.1839e-02,  7.9019e-02,  4.1466e-02],\n",
       "                        [ 4.5874e-02,  3.7204e-02, -9.1616e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 2.9371e-02,  9.3230e-03,  8.3610e-02],\n",
       "                        [-9.3509e-02,  9.2241e-02, -7.0915e-02],\n",
       "                        [-4.7214e-02, -3.8997e-02,  5.5305e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 8.5327e-02, -3.7008e-02,  8.0242e-02],\n",
       "                        [-9.5985e-04,  4.9466e-02,  7.4980e-02],\n",
       "                        [-3.7262e-02, -2.6053e-03, -2.9400e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-1.5362e-02,  4.2045e-02,  2.5920e-02],\n",
       "                        [-8.6179e-02,  2.2995e-03,  6.1361e-02],\n",
       "                        [-5.8281e-02, -1.8861e-02,  4.9903e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 8.1340e-03,  8.1755e-02, -5.0563e-02],\n",
       "                        [ 6.2698e-02,  7.8926e-02,  9.0594e-02],\n",
       "                        [-7.5998e-02, -5.8680e-02,  8.7603e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-1.8790e-02, -8.5170e-02, -4.6439e-02],\n",
       "                        [ 1.5871e-02,  8.4202e-02, -3.5653e-02],\n",
       "                        [-7.9205e-02,  5.3606e-02, -5.9558e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-8.1565e-02,  1.0846e-02,  7.4090e-02],\n",
       "                        [-8.8378e-02,  5.1800e-02,  5.6649e-02],\n",
       "                        [ 3.5371e-02,  4.6533e-02, -9.0202e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 8.4969e-02, -4.4355e-02,  9.3506e-02],\n",
       "                        [-6.2394e-02, -1.5573e-02,  5.5167e-02],\n",
       "                        [ 4.1344e-02, -6.7285e-02,  3.6296e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-8.1463e-02,  9.5969e-02,  3.6680e-02],\n",
       "                        [-7.2893e-02, -5.6694e-02, -3.5926e-02],\n",
       "                        [ 5.9000e-02,  4.5841e-02,  3.2562e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-4.6076e-02,  8.4788e-02,  3.2942e-02],\n",
       "                        [ 2.6359e-02, -7.7208e-02,  7.4200e-02],\n",
       "                        [-4.8205e-02,  7.4684e-02, -6.2922e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-6.0860e-02, -6.6886e-02,  2.0830e-02],\n",
       "                        [-1.2836e-03, -7.6184e-02, -5.7620e-02],\n",
       "                        [-9.8335e-02, -2.2009e-02,  1.0049e-01]]],\n",
       "              \n",
       "              \n",
       "                      [[[-7.0300e-03, -6.2473e-02,  3.2910e-02],\n",
       "                        [ 5.4189e-02, -3.4274e-02,  4.0727e-02],\n",
       "                        [ 3.7592e-02,  4.4118e-02, -8.9847e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-4.5677e-02, -6.6173e-02, -2.2980e-02],\n",
       "                        [-9.9060e-02, -7.5440e-02, -7.9774e-02],\n",
       "                        [-1.6278e-02, -8.3258e-02, -6.8350e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 1.0108e-01, -8.5810e-02, -1.0109e-02],\n",
       "                        [-3.5114e-02, -3.5173e-02, -8.9736e-02],\n",
       "                        [ 4.8313e-02,  6.1218e-02,  8.3550e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 5.5523e-02, -2.9251e-02,  6.3297e-02],\n",
       "                        [ 3.9468e-02,  7.7965e-02, -1.4069e-02],\n",
       "                        [ 6.4494e-02,  1.0057e-01, -7.2165e-03]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 9.7833e-03, -6.8278e-03,  8.2716e-02],\n",
       "                        [-2.9176e-02, -6.3664e-02, -4.8020e-02],\n",
       "                        [ 6.6576e-02, -6.8068e-02, -1.0100e-01]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 3.5717e-02, -7.0243e-02,  2.4788e-02],\n",
       "                        [ 7.8605e-02,  2.4924e-02,  3.5527e-02],\n",
       "                        [-3.0364e-02, -1.9640e-02, -8.2118e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 2.2454e-02, -6.4742e-02,  7.9057e-02],\n",
       "                        [-3.5258e-02, -8.0824e-02,  4.8667e-02],\n",
       "                        [ 5.7651e-02,  3.7817e-02, -1.4655e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-1.7340e-02,  4.1962e-02, -3.2100e-02],\n",
       "                        [ 8.1091e-02, -1.6550e-02, -7.0646e-03],\n",
       "                        [-3.4035e-02, -9.2647e-02, -3.0589e-03]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 7.1690e-02,  7.9303e-03, -8.9920e-02],\n",
       "                        [ 8.1585e-02, -6.5112e-02,  6.8541e-02],\n",
       "                        [-7.6233e-02, -4.2735e-02,  7.1361e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-8.4065e-02, -2.7619e-02,  4.7846e-02],\n",
       "                        [-7.2268e-02,  6.3698e-02,  1.4390e-02],\n",
       "                        [-9.4280e-02, -8.0611e-02,  6.8323e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 4.7938e-02, -4.0881e-02, -5.3165e-02],\n",
       "                        [ 9.1689e-02, -7.9187e-03, -8.6753e-02],\n",
       "                        [ 4.9929e-02, -5.9309e-04,  4.7408e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 2.2120e-02,  4.1404e-02, -2.6764e-02],\n",
       "                        [-2.9920e-02,  7.1711e-02, -4.9747e-02],\n",
       "                        [-8.6327e-02, -7.2074e-02, -2.6072e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-9.5883e-02,  9.0987e-02, -5.8026e-02],\n",
       "                        [ 7.6348e-02,  1.4495e-02, -1.4603e-02],\n",
       "                        [ 8.8994e-02, -5.6939e-02,  9.5733e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-5.6497e-02, -8.8228e-02, -3.3096e-02],\n",
       "                        [-9.2115e-02,  9.2978e-02, -6.5891e-02],\n",
       "                        [-7.0140e-02, -7.9762e-02,  8.9515e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-3.1812e-02,  9.5031e-02,  8.6531e-02],\n",
       "                        [ 8.9279e-02, -9.3145e-02, -8.5025e-02],\n",
       "                        [ 7.5240e-03, -4.9897e-02, -1.3755e-03]]],\n",
       "              \n",
       "              \n",
       "                      [[[-8.0460e-02,  6.5096e-05, -4.6673e-03],\n",
       "                        [ 1.5746e-02, -8.6382e-02, -7.9306e-02],\n",
       "                        [-6.7841e-02,  9.4005e-02,  7.9721e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 2.0433e-02, -6.3442e-02, -7.0431e-03],\n",
       "                        [ 4.6487e-02, -4.4067e-02, -5.4822e-02],\n",
       "                        [ 7.7585e-02, -7.9773e-02,  9.7111e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-5.6112e-02,  3.5090e-02,  2.4699e-02],\n",
       "                        [ 6.7474e-02, -3.7764e-02,  2.4839e-02],\n",
       "                        [ 9.8846e-02, -6.6033e-02,  9.1908e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-1.0110e-01,  5.0414e-02, -2.8307e-02],\n",
       "                        [ 7.8616e-02, -5.4709e-02, -9.5523e-02],\n",
       "                        [ 6.1324e-02, -8.9502e-03, -5.8509e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[-7.4855e-02,  2.2740e-02,  6.8042e-03],\n",
       "                        [-3.2942e-03,  2.8189e-02, -5.5201e-02],\n",
       "                        [ 9.8027e-02,  7.7249e-02, -6.5815e-02]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 3.0017e-02,  2.7001e-02,  2.9441e-02],\n",
       "                        [-8.1277e-02,  9.6180e-02,  8.6577e-03],\n",
       "                        [-7.9336e-02, -8.1501e-02,  4.1988e-02]]]])),\n",
       "             ('conv5.depthwise.bias',\n",
       "              tensor([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])),\n",
       "             ('conv5.pointwise.weight',\n",
       "              tensor([[[[-0.0286]],\n",
       "              \n",
       "                       [[ 0.1291]],\n",
       "              \n",
       "                       [[-0.0661]],\n",
       "              \n",
       "                       ...,\n",
       "              \n",
       "                       [[ 0.0179]],\n",
       "              \n",
       "                       [[-0.0731]],\n",
       "              \n",
       "                       [[-0.1717]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.1096]],\n",
       "              \n",
       "                       [[ 0.1334]],\n",
       "              \n",
       "                       [[ 0.0587]],\n",
       "              \n",
       "                       ...,\n",
       "              \n",
       "                       [[-0.1548]],\n",
       "              \n",
       "                       [[ 0.0394]],\n",
       "              \n",
       "                       [[ 0.1193]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.1024]],\n",
       "              \n",
       "                       [[ 0.1144]],\n",
       "              \n",
       "                       [[-0.1592]],\n",
       "              \n",
       "                       ...,\n",
       "              \n",
       "                       [[ 0.1207]],\n",
       "              \n",
       "                       [[ 0.0689]],\n",
       "              \n",
       "                       [[-0.1595]]],\n",
       "              \n",
       "              \n",
       "                      ...,\n",
       "              \n",
       "              \n",
       "                      [[[-0.0946]],\n",
       "              \n",
       "                       [[ 0.0212]],\n",
       "              \n",
       "                       [[-0.1394]],\n",
       "              \n",
       "                       ...,\n",
       "              \n",
       "                       [[-0.0533]],\n",
       "              \n",
       "                       [[-0.1264]],\n",
       "              \n",
       "                       [[-0.0354]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0230]],\n",
       "              \n",
       "                       [[ 0.0436]],\n",
       "              \n",
       "                       [[-0.0340]],\n",
       "              \n",
       "                       ...,\n",
       "              \n",
       "                       [[ 0.0376]],\n",
       "              \n",
       "                       [[ 0.0620]],\n",
       "              \n",
       "                       [[-0.0791]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0031]],\n",
       "              \n",
       "                       [[ 0.1486]],\n",
       "              \n",
       "                       [[ 0.1562]],\n",
       "              \n",
       "                       ...,\n",
       "              \n",
       "                       [[ 0.1680]],\n",
       "              \n",
       "                       [[-0.0413]],\n",
       "              \n",
       "                       [[ 0.1328]]]])),\n",
       "             ('conv5.pointwise.bias',\n",
       "              tensor([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0.])),\n",
       "             ('conv6.depthwise.weight',\n",
       "              tensor([[[[ 0.0588, -0.0494,  0.0093],\n",
       "                        [ 0.0084, -0.0177, -0.0131],\n",
       "                        [ 0.0622, -0.0464,  0.0093]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0321,  0.0500,  0.0693],\n",
       "                        [ 0.0417, -0.0073,  0.0581],\n",
       "                        [-0.0246,  0.0650, -0.0329]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0294,  0.0018,  0.0660],\n",
       "                        [-0.0549, -0.0061,  0.0666],\n",
       "                        [-0.0124, -0.0668, -0.0709]]],\n",
       "              \n",
       "              \n",
       "                      ...,\n",
       "              \n",
       "              \n",
       "                      [[[-0.0260, -0.0639,  0.0399],\n",
       "                        [-0.0167,  0.0565, -0.0048],\n",
       "                        [ 0.0137,  0.0576, -0.0412]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0113,  0.0603,  0.0652],\n",
       "                        [-0.0404,  0.0621,  0.0054],\n",
       "                        [ 0.0719, -0.0288,  0.0269]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0604, -0.0694, -0.0299],\n",
       "                        [ 0.0573, -0.0672,  0.0151],\n",
       "                        [-0.0109,  0.0593,  0.0021]]]])),\n",
       "             ('conv6.depthwise.bias',\n",
       "              tensor([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0.])),\n",
       "             ('conv6.pointwise.weight',\n",
       "              tensor([[[[-0.0821]],\n",
       "              \n",
       "                       [[ 0.0154]],\n",
       "              \n",
       "                       [[ 0.0366]],\n",
       "              \n",
       "                       ...,\n",
       "              \n",
       "                       [[-0.1284]],\n",
       "              \n",
       "                       [[ 0.0059]],\n",
       "              \n",
       "                       [[-0.1316]]],\n",
       "              \n",
       "              \n",
       "                      [[[-0.0693]],\n",
       "              \n",
       "                       [[-0.0494]],\n",
       "              \n",
       "                       [[-0.0191]],\n",
       "              \n",
       "                       ...,\n",
       "              \n",
       "                       [[-0.1076]],\n",
       "              \n",
       "                       [[ 0.0643]],\n",
       "              \n",
       "                       [[ 0.1027]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0023]],\n",
       "              \n",
       "                       [[-0.0779]],\n",
       "              \n",
       "                       [[ 0.1491]],\n",
       "              \n",
       "                       ...,\n",
       "              \n",
       "                       [[-0.0172]],\n",
       "              \n",
       "                       [[ 0.1049]],\n",
       "              \n",
       "                       [[ 0.1404]]],\n",
       "              \n",
       "              \n",
       "                      ...,\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0017]],\n",
       "              \n",
       "                       [[-0.1074]],\n",
       "              \n",
       "                       [[ 0.1500]],\n",
       "              \n",
       "                       ...,\n",
       "              \n",
       "                       [[-0.0727]],\n",
       "              \n",
       "                       [[-0.0693]],\n",
       "              \n",
       "                       [[-0.0196]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.1038]],\n",
       "              \n",
       "                       [[-0.0731]],\n",
       "              \n",
       "                       [[ 0.0384]],\n",
       "              \n",
       "                       ...,\n",
       "              \n",
       "                       [[ 0.0207]],\n",
       "              \n",
       "                       [[ 0.1245]],\n",
       "              \n",
       "                       [[ 0.0866]]],\n",
       "              \n",
       "              \n",
       "                      [[[ 0.0864]],\n",
       "              \n",
       "                       [[ 0.1139]],\n",
       "              \n",
       "                       [[-0.1477]],\n",
       "              \n",
       "                       ...,\n",
       "              \n",
       "                       [[-0.0181]],\n",
       "              \n",
       "                       [[-0.1313]],\n",
       "              \n",
       "                       [[ 0.0747]]]])),\n",
       "             ('conv6.pointwise.bias',\n",
       "              tensor([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0.])),\n",
       "             ('fc1.weight',\n",
       "              tensor([[ 0.0229, -0.0527, -0.0002,  ...,  0.0440,  0.0063, -0.0616],\n",
       "                      [ 0.0015, -0.0366,  0.0166,  ..., -0.0295, -0.0238,  0.0461],\n",
       "                      [ 0.0360, -0.0617, -0.0192,  ..., -0.0120,  0.0378, -0.0300],\n",
       "                      ...,\n",
       "                      [ 0.0333, -0.0049, -0.0451,  ..., -0.0036,  0.0594,  0.0150],\n",
       "                      [-0.0484, -0.0337, -0.0406,  ..., -0.0279,  0.0052,  0.0170],\n",
       "                      [-0.0295, -0.0166,  0.0637,  ..., -0.0511, -0.0116,  0.0424]])),\n",
       "             ('fc1.bias',\n",
       "              tensor([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "                      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])),\n",
       "             ('fc2.weight',\n",
       "              tensor([[-0.0210, -0.0299, -0.0159,  ...,  0.1116,  0.1097, -0.1231],\n",
       "                      [-0.1387, -0.0553, -0.0783,  ...,  0.1199,  0.0444,  0.0596],\n",
       "                      [ 0.0254, -0.0286, -0.1485,  ...,  0.0523, -0.0050,  0.0687],\n",
       "                      ...,\n",
       "                      [-0.0107, -0.0726, -0.1499,  ..., -0.0276, -0.0240, -0.0893],\n",
       "                      [-0.0120,  0.1061,  0.0291,  ..., -0.0928, -0.1442, -0.0156],\n",
       "                      [-0.1305, -0.0328,  0.1411,  ..., -0.0453, -0.0687,  0.0834]])),\n",
       "             ('fc2.bias', tensor([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]))])"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.state_dict()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 设置交叉熵损失函数，SGD优化器"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-26T01:43:40.023837Z",
     "start_time": "2025-06-26T01:43:40.019952Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "损失函数: CrossEntropyLoss()\n"
     ]
    }
   ],
   "source": [
    "model = NeuralNetwork()\n",
    "# 定义损失函数和优化器\n",
    "loss_fn = nn.CrossEntropyLoss()  # 交叉熵损失函数，适用于多分类问题，里边会做softmax，还有会把0-9标签转换成one-hot编码\n",
    "\n",
    "print(\"损失函数:\", loss_fn)\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-26T01:43:40.035848Z",
     "start_time": "2025-06-26T01:43:40.032419Z"
    }
   },
   "outputs": [],
   "source": [
    "model = NeuralNetwork('selu')\n",
    "\n",
    "optimizer = torch.optim.SGD(model.parameters(), lr=0.001, momentum=0.9)  # SGD优化器，学习率为0.01，动量为0.9"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-26T01:45:37.732814Z",
     "start_time": "2025-06-26T01:43:40.035848Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "使用设备: cpu\n",
      "训练开始，共43000步\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "34c23601af2646b1b1e01e06a0273d8d",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/43000 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "device = torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\")\n",
    "print(f\"使用设备: {device}\")\n",
    "model = model.to(device) #将模型移动到GPU\n",
    "early_stopping=EarlyStopping(patience=10, delta=0.001)\n",
    "model_saver=ModelSaver(save_dir='model_weights', save_best_only=True)\n",
    "\n",
    "\n",
    "model, history = train_classification_model(model, train_loader, val_loader, loss_fn, optimizer, device, num_epochs=50, early_stopping=early_stopping, model_saver=model_saver, tensorboard_logger=None)\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-26T01:45:37.737721Z",
     "start_time": "2025-06-26T01:45:37.732814Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[{'loss': 0.17111067473888397, 'acc': 87.5, 'step': 42900},\n",
       " {'loss': 0.17925597727298737, 'acc': 95.3125, 'step': 42901},\n",
       " {'loss': 0.16173963248729706, 'acc': 95.3125, 'step': 42902},\n",
       " {'loss': 0.3444129526615143, 'acc': 85.9375, 'step': 42903},\n",
       " {'loss': 0.14513170719146729, 'acc': 95.3125, 'step': 42904},\n",
       " {'loss': 0.20330692827701569, 'acc': 90.625, 'step': 42905},\n",
       " {'loss': 0.49470117688179016, 'acc': 84.375, 'step': 42906},\n",
       " {'loss': 0.5064060688018799, 'acc': 90.625, 'step': 42907},\n",
       " {'loss': 0.2151145339012146, 'acc': 89.0625, 'step': 42908},\n",
       " {'loss': 0.1817987710237503, 'acc': 92.1875, 'step': 42909},\n",
       " {'loss': 0.12261930853128433, 'acc': 98.4375, 'step': 42910},\n",
       " {'loss': 0.3329963684082031, 'acc': 87.5, 'step': 42911},\n",
       " {'loss': 0.2671681046485901, 'acc': 87.5, 'step': 42912},\n",
       " {'loss': 0.1898869127035141, 'acc': 92.1875, 'step': 42913},\n",
       " {'loss': 0.24075035750865936, 'acc': 92.1875, 'step': 42914},\n",
       " {'loss': 0.2375257909297943, 'acc': 92.1875, 'step': 42915},\n",
       " {'loss': 0.19233450293540955, 'acc': 92.1875, 'step': 42916},\n",
       " {'loss': 0.23975564539432526, 'acc': 90.625, 'step': 42917},\n",
       " {'loss': 0.3099151849746704, 'acc': 87.5, 'step': 42918},\n",
       " {'loss': 0.1863519847393036, 'acc': 92.1875, 'step': 42919},\n",
       " {'loss': 0.3549503982067108, 'acc': 82.8125, 'step': 42920},\n",
       " {'loss': 0.09036881476640701, 'acc': 96.875, 'step': 42921},\n",
       " {'loss': 0.16683930158615112, 'acc': 90.625, 'step': 42922},\n",
       " {'loss': 0.15934158861637115, 'acc': 93.75, 'step': 42923},\n",
       " {'loss': 0.25020653009414673, 'acc': 89.0625, 'step': 42924},\n",
       " {'loss': 0.41469067335128784, 'acc': 90.625, 'step': 42925},\n",
       " {'loss': 0.268901526927948, 'acc': 87.5, 'step': 42926},\n",
       " {'loss': 0.18091094493865967, 'acc': 95.3125, 'step': 42927},\n",
       " {'loss': 0.450021892786026, 'acc': 92.1875, 'step': 42928},\n",
       " {'loss': 0.21057793498039246, 'acc': 95.3125, 'step': 42929},\n",
       " {'loss': 0.22134795784950256, 'acc': 92.1875, 'step': 42930},\n",
       " {'loss': 0.25814059376716614, 'acc': 85.9375, 'step': 42931},\n",
       " {'loss': 0.20047174394130707, 'acc': 92.1875, 'step': 42932},\n",
       " {'loss': 0.2569480538368225, 'acc': 90.625, 'step': 42933},\n",
       " {'loss': 0.3362443149089813, 'acc': 87.5, 'step': 42934},\n",
       " {'loss': 0.11829547584056854, 'acc': 100.0, 'step': 42935},\n",
       " {'loss': 0.15801893174648285, 'acc': 92.1875, 'step': 42936},\n",
       " {'loss': 0.1548689752817154, 'acc': 95.3125, 'step': 42937},\n",
       " {'loss': 0.39464637637138367, 'acc': 82.8125, 'step': 42938},\n",
       " {'loss': 0.21926327049732208, 'acc': 92.1875, 'step': 42939},\n",
       " {'loss': 0.35304853320121765, 'acc': 84.375, 'step': 42940},\n",
       " {'loss': 0.2722744345664978, 'acc': 90.625, 'step': 42941},\n",
       " {'loss': 0.17028303444385529, 'acc': 93.75, 'step': 42942},\n",
       " {'loss': 0.3311002850532532, 'acc': 89.0625, 'step': 42943},\n",
       " {'loss': 0.23142392933368683, 'acc': 92.1875, 'step': 42944},\n",
       " {'loss': 0.2329530566930771, 'acc': 93.75, 'step': 42945},\n",
       " {'loss': 0.17869003117084503, 'acc': 93.75, 'step': 42946},\n",
       " {'loss': 0.2490847110748291, 'acc': 89.0625, 'step': 42947},\n",
       " {'loss': 0.15577332675457, 'acc': 96.875, 'step': 42948},\n",
       " {'loss': 0.30902624130249023, 'acc': 85.9375, 'step': 42949},\n",
       " {'loss': 0.4066518545150757, 'acc': 87.5, 'step': 42950},\n",
       " {'loss': 0.3123522400856018, 'acc': 89.0625, 'step': 42951},\n",
       " {'loss': 0.239326611161232, 'acc': 87.5, 'step': 42952},\n",
       " {'loss': 0.20785582065582275, 'acc': 93.75, 'step': 42953},\n",
       " {'loss': 0.2720249593257904, 'acc': 87.5, 'step': 42954},\n",
       " {'loss': 0.364131361246109, 'acc': 92.1875, 'step': 42955},\n",
       " {'loss': 0.1647520214319229, 'acc': 95.3125, 'step': 42956},\n",
       " {'loss': 0.1810949146747589, 'acc': 90.625, 'step': 42957},\n",
       " {'loss': 0.20467588305473328, 'acc': 95.3125, 'step': 42958},\n",
       " {'loss': 0.2579708695411682, 'acc': 89.0625, 'step': 42959},\n",
       " {'loss': 0.33496740460395813, 'acc': 89.0625, 'step': 42960},\n",
       " {'loss': 0.31159818172454834, 'acc': 87.5, 'step': 42961},\n",
       " {'loss': 0.21416020393371582, 'acc': 92.1875, 'step': 42962},\n",
       " {'loss': 0.234056755900383, 'acc': 89.0625, 'step': 42963},\n",
       " {'loss': 0.2147475928068161, 'acc': 90.625, 'step': 42964},\n",
       " {'loss': 0.22003129124641418, 'acc': 90.625, 'step': 42965},\n",
       " {'loss': 0.16323573887348175, 'acc': 93.75, 'step': 42966},\n",
       " {'loss': 0.24689343571662903, 'acc': 90.625, 'step': 42967},\n",
       " {'loss': 0.2196037620306015, 'acc': 89.0625, 'step': 42968},\n",
       " {'loss': 0.1958879679441452, 'acc': 92.1875, 'step': 42969},\n",
       " {'loss': 0.26024308800697327, 'acc': 90.625, 'step': 42970},\n",
       " {'loss': 0.19707171618938446, 'acc': 93.75, 'step': 42971},\n",
       " {'loss': 0.13602659106254578, 'acc': 96.875, 'step': 42972},\n",
       " {'loss': 0.1619047373533249, 'acc': 95.3125, 'step': 42973},\n",
       " {'loss': 0.17951342463493347, 'acc': 96.875, 'step': 42974},\n",
       " {'loss': 0.17357338964939117, 'acc': 92.1875, 'step': 42975},\n",
       " {'loss': 0.3273034989833832, 'acc': 93.75, 'step': 42976},\n",
       " {'loss': 0.18614916503429413, 'acc': 93.75, 'step': 42977},\n",
       " {'loss': 0.29833173751831055, 'acc': 89.0625, 'step': 42978},\n",
       " {'loss': 0.3226870894432068, 'acc': 89.0625, 'step': 42979},\n",
       " {'loss': 0.3725792467594147, 'acc': 82.8125, 'step': 42980},\n",
       " {'loss': 0.38668715953826904, 'acc': 84.375, 'step': 42981},\n",
       " {'loss': 0.1336914598941803, 'acc': 96.875, 'step': 42982},\n",
       " {'loss': 0.239113911986351, 'acc': 90.625, 'step': 42983},\n",
       " {'loss': 0.11196286231279373, 'acc': 96.875, 'step': 42984},\n",
       " {'loss': 0.19427841901779175, 'acc': 95.3125, 'step': 42985},\n",
       " {'loss': 0.2544938921928406, 'acc': 90.625, 'step': 42986},\n",
       " {'loss': 0.10993742197751999, 'acc': 98.4375, 'step': 42987},\n",
       " {'loss': 0.2736361026763916, 'acc': 87.5, 'step': 42988},\n",
       " {'loss': 0.2798558473587036, 'acc': 93.75, 'step': 42989},\n",
       " {'loss': 0.3890065848827362, 'acc': 85.9375, 'step': 42990},\n",
       " {'loss': 0.2948680818080902, 'acc': 90.625, 'step': 42991},\n",
       " {'loss': 0.18867740035057068, 'acc': 93.75, 'step': 42992},\n",
       " {'loss': 0.2768816649913788, 'acc': 89.0625, 'step': 42993},\n",
       " {'loss': 0.21852858364582062, 'acc': 93.75, 'step': 42994},\n",
       " {'loss': 0.13684478402137756, 'acc': 96.875, 'step': 42995},\n",
       " {'loss': 0.21769967675209045, 'acc': 93.75, 'step': 42996},\n",
       " {'loss': 0.3653888404369354, 'acc': 89.0625, 'step': 42997},\n",
       " {'loss': 0.25904572010040283, 'acc': 85.9375, 'step': 42998}]"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "history['train'][-100:-1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-26T01:45:37.741226Z",
     "start_time": "2025-06-26T01:45:37.737721Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[{'loss': 2.30245103225708, 'acc': 19.9, 'step': 0},\n",
       " {'loss': 2.3016495670318604, 'acc': 10.2, 'step': 500},\n",
       " {'loss': 2.3011243644714354, 'acc': 10.2, 'step': 1000},\n",
       " {'loss': 2.2992278423309327, 'acc': 9.52, 'step': 1500},\n",
       " {'loss': 2.269267213821411, 'acc': 19.76, 'step': 2000},\n",
       " {'loss': 0.9817912092208863, 'acc': 66.14, 'step': 2500},\n",
       " {'loss': 0.8050950051307678, 'acc': 71.36, 'step': 3000},\n",
       " {'loss': 0.7262448700904847, 'acc': 73.76, 'step': 3500},\n",
       " {'loss': 0.6845237293720245, 'acc': 74.72, 'step': 4000},\n",
       " {'loss': 0.6769438776969909, 'acc': 74.52, 'step': 4500},\n",
       " {'loss': 0.6422679302692413, 'acc': 76.8, 'step': 5000},\n",
       " {'loss': 0.6208775728702545, 'acc': 77.42, 'step': 5500},\n",
       " {'loss': 0.6063298562049866, 'acc': 77.8, 'step': 6000},\n",
       " {'loss': 0.5904360127449035, 'acc': 77.92, 'step': 6500},\n",
       " {'loss': 0.5649004526138306, 'acc': 79.3, 'step': 7000},\n",
       " {'loss': 0.5593203871488571, 'acc': 79.42, 'step': 7500},\n",
       " {'loss': 0.5417190733671189, 'acc': 80.58, 'step': 8000},\n",
       " {'loss': 0.5351449514865875, 'acc': 80.38, 'step': 8500},\n",
       " {'loss': 0.5336991427898407, 'acc': 81.04, 'step': 9000},\n",
       " {'loss': 0.49101277129650117, 'acc': 82.54, 'step': 9500},\n",
       " {'loss': 0.4863283043384552, 'acc': 82.74, 'step': 10000},\n",
       " {'loss': 0.48522653629779816, 'acc': 82.52, 'step': 10500},\n",
       " {'loss': 0.4731689921617508, 'acc': 82.94, 'step': 11000},\n",
       " {'loss': 0.4586566431283951, 'acc': 83.5, 'step': 11500},\n",
       " {'loss': 0.45664722821712495, 'acc': 83.84, 'step': 12000},\n",
       " {'loss': 0.4452603545427322, 'acc': 84.16, 'step': 12500},\n",
       " {'loss': 0.4529737315893173, 'acc': 83.74, 'step': 13000},\n",
       " {'loss': 0.4288673878192902, 'acc': 84.64, 'step': 13500},\n",
       " {'loss': 0.4337928213119507, 'acc': 84.28, 'step': 14000},\n",
       " {'loss': 0.4218559485197067, 'acc': 84.74, 'step': 14500},\n",
       " {'loss': 0.42972237610816955, 'acc': 84.62, 'step': 15000},\n",
       " {'loss': 0.42713168156147, 'acc': 84.46, 'step': 15500},\n",
       " {'loss': 0.40809230303764343, 'acc': 85.12, 'step': 16000},\n",
       " {'loss': 0.4075269985437393, 'acc': 85.32, 'step': 16500},\n",
       " {'loss': 0.42806413180828096, 'acc': 83.96, 'step': 17000},\n",
       " {'loss': 0.3991097543954849, 'acc': 85.46, 'step': 17500},\n",
       " {'loss': 0.3935246716737747, 'acc': 85.8, 'step': 18000},\n",
       " {'loss': 0.4082992100715637, 'acc': 85.12, 'step': 18500},\n",
       " {'loss': 0.38852283248901365, 'acc': 85.68, 'step': 19000},\n",
       " {'loss': 0.3862015875339508, 'acc': 86.2, 'step': 19500},\n",
       " {'loss': 0.37750590562820435, 'acc': 86.62, 'step': 20000},\n",
       " {'loss': 0.38162452714443207, 'acc': 86.64, 'step': 20500},\n",
       " {'loss': 0.3781569221496582, 'acc': 86.02, 'step': 21000},\n",
       " {'loss': 0.3785221148967743, 'acc': 86.26, 'step': 21500},\n",
       " {'loss': 0.36811045742034915, 'acc': 86.7, 'step': 22000},\n",
       " {'loss': 0.3718382990121841, 'acc': 86.06, 'step': 22500},\n",
       " {'loss': 0.36966075384616853, 'acc': 86.48, 'step': 23000},\n",
       " {'loss': 0.3595073088169098, 'acc': 86.64, 'step': 23500},\n",
       " {'loss': 0.35954063794612884, 'acc': 86.98, 'step': 24000},\n",
       " {'loss': 0.3489320971727371, 'acc': 86.92, 'step': 24500},\n",
       " {'loss': 0.3607493037700653, 'acc': 87.04, 'step': 25000},\n",
       " {'loss': 0.3605413003206253, 'acc': 87.04, 'step': 25500},\n",
       " {'loss': 0.34680212829113005, 'acc': 87.58, 'step': 26000},\n",
       " {'loss': 0.34775088703632356, 'acc': 86.94, 'step': 26500},\n",
       " {'loss': 0.351667529630661, 'acc': 86.7, 'step': 27000},\n",
       " {'loss': 0.34089003033638, 'acc': 87.8, 'step': 27500},\n",
       " {'loss': 0.3393202391386032, 'acc': 87.96, 'step': 28000},\n",
       " {'loss': 0.3361907692670822, 'acc': 87.3, 'step': 28500},\n",
       " {'loss': 0.36071591670513153, 'acc': 86.38, 'step': 29000},\n",
       " {'loss': 0.33261634676456453, 'acc': 88.0, 'step': 29500},\n",
       " {'loss': 0.3278122294545174, 'acc': 87.96, 'step': 30000},\n",
       " {'loss': 0.3402140795469284, 'acc': 87.34, 'step': 30500},\n",
       " {'loss': 0.3260491963982582, 'acc': 88.06, 'step': 31000},\n",
       " {'loss': 0.3224844992876053, 'acc': 88.54, 'step': 31500},\n",
       " {'loss': 0.33619465453624725, 'acc': 87.82, 'step': 32000},\n",
       " {'loss': 0.3338315356016159, 'acc': 87.64, 'step': 32500},\n",
       " {'loss': 0.3407135832309723, 'acc': 86.88, 'step': 33000},\n",
       " {'loss': 0.3136108451843262, 'acc': 88.66, 'step': 33500},\n",
       " {'loss': 0.3272056480884552, 'acc': 88.16, 'step': 34000},\n",
       " {'loss': 0.31967551867961885, 'acc': 88.56, 'step': 34500},\n",
       " {'loss': 0.3236790620446205, 'acc': 87.5, 'step': 35000},\n",
       " {'loss': 0.32053134672641753, 'acc': 88.04, 'step': 35500},\n",
       " {'loss': 0.3168416529655457, 'acc': 88.4, 'step': 36000},\n",
       " {'loss': 0.3050274129867554, 'acc': 88.68, 'step': 36500},\n",
       " {'loss': 0.3223493648529053, 'acc': 88.3, 'step': 37000},\n",
       " {'loss': 0.316878681743145, 'acc': 88.58, 'step': 37500},\n",
       " {'loss': 0.3078881361961365, 'acc': 88.92, 'step': 38000},\n",
       " {'loss': 0.3063243546247482, 'acc': 88.96, 'step': 38500},\n",
       " {'loss': 0.307690760076046, 'acc': 88.7, 'step': 39000},\n",
       " {'loss': 0.29732209758758543, 'acc': 89.0, 'step': 39500},\n",
       " {'loss': 0.30678746636509896, 'acc': 88.68, 'step': 40000},\n",
       " {'loss': 0.31472805117368696, 'acc': 87.98, 'step': 40500},\n",
       " {'loss': 0.3180260756492615, 'acc': 88.3, 'step': 41000},\n",
       " {'loss': 0.30033036074638364, 'acc': 88.64, 'step': 41500},\n",
       " {'loss': 0.30859458335638046, 'acc': 88.46, 'step': 42000}]"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "history['val'][-1000:-1]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 绘制损失曲线和准确率曲线"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-26T01:45:37.744941Z",
     "start_time": "2025-06-26T01:45:37.741226Z"
    }
   },
   "outputs": [],
   "source": [
    "# 导入绘图库\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib import font_manager\n",
    "def plot_learning_curves1(history):\n",
    "    # 设置中文字体支持\n",
    "    plt.rcParams['font.sans-serif'] = ['SimHei']  # 使用黑体\n",
    "    plt.rcParams['axes.unicode_minus'] = False    # 解决负号显示问题\n",
    "\n",
    "    # 创建一个图形，包含两个子图（损失和准确率）\n",
    "    fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 5))\n",
    "\n",
    "    # 绘制损失曲线\n",
    "    epochs = range(1, len(history['train_loss']) + 1)\n",
    "    ax1.plot(epochs, history['train_loss'], 'b-', label='训练损失')\n",
    "    ax1.plot(epochs, history['val_loss'], 'r-', label='验证损失')\n",
    "    ax1.set_title('训练与验证损失')\n",
    "    ax1.set_xlabel('轮次')\n",
    "    ax1.set_ylabel('损失')\n",
    "    ax1.legend()\n",
    "    ax1.grid(True)\n",
    "\n",
    "    # 绘制准确率曲线\n",
    "    ax2.plot(epochs, history['train_acc'], 'b-', label='训练准确率')\n",
    "    ax2.plot(epochs, history['val_acc'], 'r-', label='验证准确率')\n",
    "    ax2.set_title('训练与验证准确率')\n",
    "    ax2.set_xlabel('轮次')\n",
    "    ax2.set_ylabel('准确率 (%)')\n",
    "    ax2.legend()\n",
    "    ax2.grid(True)\n",
    "\n",
    "    plt.tight_layout()\n",
    "    plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-26T01:45:37.816716Z",
     "start_time": "2025-06-26T01:45:37.744941Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 1000x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_learning_curves(history, sample_step=500)  #横坐标是 steps"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-26T01:45:37.818553Z",
     "start_time": "2025-06-26T01:45:37.816716Z"
    }
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-26T01:48:40.300725Z",
     "start_time": "2025-06-26T01:48:39.548524Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(89.17, 0.3090566464781761)"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 在测试集上评估模型\n",
    "test_accuracy = evaluate_model(model, test_loader, device, loss_fn)\n",
    "test_accuracy\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
